这个问题已经在这里有了答案 :
10年前关闭。
可能的重复项: 我应该使用公共属性和私有字段还是公共字段来存储数据? C#3.0中自动属性和公共字段之间的区别
可能的重复项:
我应该使用公共属性和私有字段还是公共字段来存储数据?
C#3.0中自动属性和公共字段之间的区别
人们似乎在教条上坚持在田野上使用公共财产,但是为什么在简单财产的情况下它是如此重要?
怎么
public int Foo { get; set; }
与
public int Foo;
?
我不由自主地想到了两者之间的一些实际区别:
除了这些相当罕见的情况外,稍后将Foo更改为计算属性会导致代码行更改为0。
使用属性有两个明显的优点:
另外,几乎没有缺点。JIT编译器可以内联这样的简单,自动属性,因此没有理由不使用它们。
另外,您提到:
这不需要更改您的代码,但确实会迫使您重新编译所有代码。从字段更改为属性是一项重大的API更改,这将要求重新编译引用您程序集的所有程序集。通过将其设置为自动属性,您可以仅发送新的二进制文件并保持API兼容性。这就是我上面提到的“版本控制”优势…