关于.net 属性 的思考
属性是很有用的,这个不用怀疑,可以封装私有字段等等一些好处, 
 但对于这样的代码而言, 
                         public   int   EmailWorkID 
                         { 
                                     get   {   return   _EmailWorkID;   } 
                                     set   {   _EmailWorkID   =   value;   } 
                      }   
 与 
                      public   int   EmailWorkID; 
             各位一般会用那种形式?请谈谈看法和理由。 
          个人倾向第二中,应为简单,第一中get,set都有,而且是简单的的赋值, 
 除了说   _EmailWorkID字段变化后,外部使用EmailWorkID不会影响外, 
 没见的有别的好处,请各位发表高见!!
------解决方案--------------------如果就这么负值 我会用第2种
------解决方案--------------------如果只是赋值的话我也会用第2种
------解决方案--------------------第一是为了代码规范 便于调试
------解决方案--------------------这样就破坏了类的封装啊。。
------解决方案--------------------同意楼上的..   
------解决方案--------------------还是用属性比较好,效率不会比public成员变量差,但是维护起来方便多了。 
 很可能一段时间后,你需要给_EmailWorkID指定一个可用范围,或者觉得set属性可以不用public而改成internal。
------解决方案--------------------个人习惯了第一种。虽然基本上没利用过它的好处。
------解决方案--------------------属性与字段的作用各不相同,至于如何取舍完全取决于你的设计!   
 它们的差别决不是形式上的,也不是性能上的,它们是程序员对于现实世界抽象的结果, 
 看看 Framework 中类的属性和字段就会明白的!   
 如果理解不了,只能说明您从未写过一个真正意义上的 Class!
------解决方案--------------------看看efftive c# 第一条原则,CSDN有
------解决方案--------------------Efftive C#倡议用第一种
------解决方案--------------------属性你可以设置关系啊。比如 
 public int Total 
 { 
 set 
 { 
 if(value >  0) 
 _total=... 
 else 
 ... 
 } 
 }字段不行
------解决方案--------------------属性是特殊的访问器。访问器的作用除了封装类成员,还可以做一些逻辑,比如判断文件是否存在。典型的例子是:人的年龄必须大于0, 如果不通过属性封装,那么只有写Get,Set函数来保证年龄不会被赋予负数。
------解决方案--------------------用公共方法 
 不能用公共变量
------解决方案--------------------公共变量可以用,但是不提倡用,因为破坏了封装性. 
 就象james_hunter(辉)所说的:属性是特殊的访问器。访问器的作用除了封装类成员,还可以做一些逻辑.
------解决方案--------------------肯定是第一种,直接用公共字段可维护性太差了。