本帖最后由 chunjiang8257 于 2012-11-15 10:25:12 编辑

解决方案 »

  1.   

    字段,有些属性没有get或者set
      

  2.   

    内部调用肯定是调用Field,除非你用的是匿名Property,没写Field,否则都应该用Field。
      

  3.   

    对于set,get没有啥操作代码的。使用内部成员 。
    有的话用属性了。
      

  4.   

    从OOP设计的角度看,应该调用属性。ls很多人提到了“没有什么逻辑的情况下不如调用字段”,其实这个观点是错误的。微软也意识到了使用属性产生的负面作用,主要是不必要的额外代码,所以在C# 3.0后增加了自动属性,应该从中很明显地看出微软对这个问题的态度,微软是鼓励大家使用属性的。有了自动属性,无论是VB还是C#,代码都得到了最简化,没有理由再觉得代码冗繁而不用了。一些人也担心,使用属性会不会降低性能,同样,这是不需要担心的。CLR早就对此作了优化,操纵属性的代码已经被内联,因此调用开销是不存在的。为什么要坚持使用属性,那怕“没有逻辑”,这是因为字段和属性从调用者看来代码没什么区别,其实却有本质的不同,属性归根结底说,是一个方法,而字段不是。因此两者在二进制上不兼容。如果你开发一个面向第三方的软件组件,那么当你需求复杂,意识到需要判断逻辑而决意将字段变成属性的时候,这意味着所有调用你程序的客户端都不能工作了,这是很糟糕的事情。所以编程这件事情不可以模棱两可,必须坚持规范的准则,才能编写出高质量的代码。
      

  5.   

    这就是所谓的书呆子,你去反编译微软的dll看看,类的内部都是使用字段而从不用属性。