仅使用公共属性而不是使用公共属性访问私有变量的好处是什么?
例如:
public int iMyInt { get; set; }
替代
private int myint;
public int iMyInt { get { return myint; } set { myint = value; } }
除了让.NET管理属性下面的变量/内存之外,还有什么优点(或缺点)呢?
仅使用公共属性而不是使用公共属性访问私有变量的好处是什么?
例如:
public int iMyInt { get; set; }
替代
private int myint;
public int iMyInt { get { return myint; } set { myint = value; } }
使用自动属性(第一个例子)需要输入的内容较少。
强烈建议仅使用公共属性而不是公共字段。许多属性只是私有字段的简单包装器。自动属性可节省手动创建属性和支撑字段的时间和麻烦。
对于您提到的简单情况,自动属性和手动属性的实际代码应该几乎相同。
一旦编译为IL,两者将几乎相同。
个人的经验法则是使用自动属性。它们更简洁,需要更少的输入,而且我知道,当我使用它们时,它们只是一个简单的包装器,没有逻辑。
如果以后需要添加逻辑,则很容易切换到自己的后备字段,并且没有(外部)后果。
在属性被获取或设置时,除非你想要发生某些事情,否则两种方式没有区别。
例如,如果你想要一个 OnMyIntSet 事件,你就不能使用自动属性语法。
我的个人偏好是使用自动属性,除非有必要。
使用自动属性的优点当然是简洁。它占用更少的空间,更容易阅读,更容易输入。
缺点是您不再可以访问私有后备变量,有时您需要它。
所以:当您需要使用私有后备变量时,请使用“旧”方法。当您不需要时,请使用自动属性。永远不要使用公共字段。那只是疯话。