是否存在创建字段的任何情况(除了readonly,but only because language designers haven't implemented it for properties yet),是否存在字段比属性有任何优势的情况?
答案 0 :(得分:2)
首先你应该记住,在.NET中,一个属性只不过是2个方法的语法糖 - 属性获取部分的一个方法,属性集部分的一个方法。
如果您谈论公共字段与属性而不是答案:使用属性总是比公共字段更好。为什么?因为您实现了封装,使您的代码在将来更易于维护。
如果你谈论私有字段与属性比我说的更好:最好使用私有字段,因为在这种情况下没有理由使用属性。 可能有一些例外,例如延迟加载:
private string _someField;
private string SomeProperty
{
get
{
if (_someField== null)
{
_someField= LoadData();
}
return _someField;
}
}
答案 1 :(得分:1)
我倾向于将字段用于私有且通常受保护的成员,以明确表示这只是对象的状态并避免符号混乱。
我使用公共成员的属性(并在大型层次结构中受到保护),以获得典型的好处,例如我可以在以后更改行为,如果我愿意,在界面上拥有它,稍后模拟它等等。
答案 2 :(得分:0)
我的一位同事在字段更方便时提供了一个很好的案例:
float m_Time = 0;
简单初始化默认值。