本人新手,在学C#中发现对字段属性操作时有这样的写法
private int a ;
public int A{
   set{
      this.a =value;
   }
    get{
        return  this.a;
     }
}
我以前是学JAVA的,这种写法和java中的访问器 Set_A()和Get_A()有什么不同?

解决方案 »

  1.   

    没学过Java,不过C#里的Property,本质上是一种Method
      

  2.   

    只是一种简写,本质上就是get方法和set方法。不需显式声明字段,可以简写为:
    public int A{get;set;}//get和set都是public的
    public int A{get;private set;}//get是public的,set是private如果是只读,只写,或需要判断时,必须显式声明一个字段a:
    private int a;
    public int A{get{return a;}//只读,也就是只有getprivate int a;
    public int A{
      get{return a;}
      set{
        if (value>0)//value是隐藏字段,类型与属性一致(int)
          a=value;
      }
    }
      

  3.   

    完全一样。实际上C#编译器会把属性访问器转化为 get_xxx 和 set_xxx 的方法。