属性是很有用的,这个不用怀疑,可以封装私有字段等等一些好处,
但对于这样的代码而言,
        public int EmailWorkID
        {
            get { return _EmailWorkID; }
            set { _EmailWorkID = value; }
       }与
       public int EmailWorkID;
    各位一般会用那种形式?请谈谈看法和理由。
   个人倾向第二中,应为简单,第一中get,set都有,而且是简单的的赋值,
除了说 _EmailWorkID字段变化后,外部使用EmailWorkID不会影响外,
没见的有别的好处,请各位发表高见!!

解决方案 »

  1.   

    还是用属性比较好,效率不会比public成员变量差,但是维护起来方便多了。
    很可能一段时间后,你需要给_EmailWorkID指定一个可用范围,或者觉得set属性可以不用public而改成internal。
      

  2.   

    属性与字段的作用各不相同,至于如何取舍完全取决于你的设计!它们的差别决不是形式上的,也不是性能上的,它们是程序员对于现实世界抽象的结果,
    看看 Framework 中类的属性和字段就会明白的!如果理解不了,只能说明您从未写过一个真正意义上的 Class!
      

  3.   

    看看efftive c# 第一条原则,CSDN有
      

  4.   

    属性你可以设置关系啊。比如
    public int Total
    {
    set
    {
    if(value > 0)
    _total=...
    else
    ...
    }
    }字段不行
      

  5.   

    属性是特殊的访问器。访问器的作用除了封装类成员,还可以做一些逻辑,比如判断文件是否存在。典型的例子是:人的年龄必须大于0, 如果不通过属性封装,那么只有写Get,Set函数来保证年龄不会被赋予负数。
      

  6.   

    公共变量可以用,但是不提倡用,因为破坏了封装性.
    就象james_hunter(辉)所说的:属性是特殊的访问器。访问器的作用除了封装类成员,还可以做一些逻辑.
      

  7.   

    我是lz,谢谢各位说出自己的看法。
    得出的结论为,还是使用属性封装好,
    1,便于以后的维护,说不定以后要把简单的赋值改为有显示条件的,这样就对外部影响就不会太大。
    2. 提供一致的访问方式,如果有的用属性,有的用共有字段,确实有点乱。
    3,.net框架好像都是用的属性,除了一种情况:静态公共字段,如:string.Empty,(vs2005)
    结贴
      

  8.   

    我是lz,谢谢各位说出自己的看法。  
    得出的结论为,还是使用属性封装好,  
    1,便于以后的维护,说不定以后要把简单的赋值改为有显示条件的,这样就对外部影响就不会太大。  
    2.  提供一致的访问方式,如果有的用属性,有的用共有字段,确实有点乱。  
    3,.net框架好像都是用的属性,除了一种情况:静态公共字段,如:string.Empty,(vs2005)  
    结贴