private static string partstr;
    public string Getpartstr
    {
        get
        {
            return partstr;
        }
        set
        {
            partstr = value;
        }
    }
我在一个类中这样写的,得到的partstr变量的值不会因用户不同而不同,都一样,想当于应用程序级的变量。
我理解的是相当于application变量,不知道我的理解对不对。请各位指点。谢谢!
后来我在页面中定义了个public变量,问题解决了。
我现在对变量范围,弄不清楚,有谁能帮我列出来吗?还有get,set 到底怎么用?

解决方案 »

  1.   

    private static string partstr; 
    的static去掉試試
      

  2.   

    这只是个属性,如果你只想要读取数据,写一个get{}。如果想可读可写 get{}set{...}
    就像 TextBox.Text  是可读可写的
      

  3.   

      protected void Page_Load(object sender, EventArgs e)
        {
                int i = class1.Getpartstr;
                Response.Write(i);  //输出10
                class1.Getpartstr = 2;
                Response.Write(class1.Getpartstr); //输出2
        }
        class class1
        {
            private static int partstr = 10;
            public static int Getpartstr
            {
                get { return partstr; }
                set { partstr = value; }
            }
        }
    另外:
    快速学习C#-第二天:类的静态特征与静态属性
    http://hi.baidu.com/xinsikao/blog/item/fd452c872646892ec65cc3b6.html
    .NET中GET与SET的用法
    http://blog.csdn.net/jakeyjia/archive/2006/04/13/661954.aspx
      

  4.   

    写属性的时候也加上static就可以了
      public static string Getpartstr 
    get,set的用法  主要是可以在get,set时方便做其他一些工作.
      

  5.   

    Get/Set访问器
    只带有 get 访问器的属性称为只读属性。无法对只读属性赋值。 
    只带有 set 访问器的属性称为只写属性。只写属性除作为赋值的目标外,无法对其进行引用。 
    同时带有 get 和 set 访问器的属性为读写属性。
    get 和 set 访问器都必须在属性体的内部声明。
    public static string Getpartstr 
      

  6.   

    partstr不相当于一个Application变量。Application是web应用程序级别的,每一个来访问网站的用户都是共有这个Application的,而你的那个partstr变量这是那个包含它的类的对象之间可以共享的,具体的get和set得用法,网上有资料。
      

  7.   

    http://topic.csdn.net/u/20090514/11/8bca7b9c-d3fc-408f-98e6-3fae2216d304.html
    属性有两个方法get和set。get 访问器返回与声明的属性相同的数据类型,表示的意思是调用时可以得到内部字段的值或引用:set访问器没有显示设置参数,但它有一个隐式参数,用关键字value表示,它的作用是调用属性时可以给内部的字段或赋值。
      

  8.   

    我在一个类中这样写的,得到的partstr变量的值不会因用户不同而不同,都一样,想当于应用程序级的变量。 
    我理解的是相当于application变量,不知道我的理解对不对。请各位指点。谢谢! 
    =======
    在ASP.NET中,这是对的
    后来我在页面中定义了个public变量,问题解决了。 
    我现在对变量范围,弄不清楚,有谁能帮我列出来吗?还有get,set 到底怎么用?
    =======
    get/set可不是你上面的用法,有谁会用你这样的用法?getter/setter 其实是方法,包装 字段 field 的访问
    因为是方法,所以能比直接访问 field 干更多的事情,比如检查
    private int _divisor;
    public int Divisor   {
    get {
    if(_divisor==0){
    thrown new InvalidOperationException("Divisor is not initialized.");
    }
    return _divisor;
    }
    set {
    if(_value==0){
    thrown new ArgumentOutOfRangeException("Divisor can not be zero.");
    }
    _divisor = value;
    }
    }
      

  9.   

    只写GET不写SET,如同只能取不能赋值,
      

  10.   


    1. 嗯,得到的partstr变量的值不会因用户不同而不同是因为你把它定义为static,static类型的变量/方法是和类同一生命周期的,AppDomain加载的时候就加载了,所以和你开多少个实例是没有关系的。
    2. 至于变量的范围吗,那么就是局部变量只在Block内生存,类实例变量只在这个类的实例中生存,而类静态变量是和类同一生命周期
    3. get,set非常简单,例如
       
       private int carID;
       public int CarID
       {
         get
         {return this.carID;}
         set
         {this.carID = calue;}
       }   其实属性编译成中间代码之后就是一个变量加两个方法:对于上面的来说就是
       public int CarID; //一个变量
       public int CarID_Get() //get方法
       {
        return this.carID;
       } 
       public void CarID_Set() //set方法
       {
        this.carID = value;
       }
        
       楼主可以自己打开ildasm.exe来查看IL
       
      

  11.   

    我的理解是application 它是可以在web  运用的变量(底层 已经写好)
    当我们在一个页面的代码中写属性的时候 要想在其他的页面中使用这个属性(必须是静态的)
    只有这样我们才能在其他的页面中  使用这个属性
    我觉得区别应该不大 
    只是application  不需要在需要使用application变量的页面上添加引用
    而后者需要这样做
    不知道我的理解对不
      

  12.   

    Application可以Lock,这个你要Lock还要自己写代码。
    不过都能实现