可能的重复问题:
在C#中,我应该使用公共属性和私有字段还是公共字段进行数据存储?
C# 3.0中自动属性与公共字段的区别
人们似乎教条地坚持使用公共属性而非字段,但为什么在简单属性的情况下如此重要呢?
这个问题在C#中广泛讨论,你可以参考上述链接了解更多信息。
public int Foo { get; set; }
与之如此不同
public int Foo;
就我目前所知,这两者之间有很少的实际区别:
- 使用反射访问成员(这很少见,而且大多数体面的反射算法将考虑到这一差异)
- 第二种方式允许您将字段用作 ref 和 out 参数的有效参数,这似乎是使用字段版本的优势
- 字段在 Remoting 中不起作用(可能是这样,我从未使用过 Remoting,但我想象他们不会?)
除了这些相当罕见的情况外,将 Foo 更改为后来的计算属性不会更改任何代码行。