我对 C# 中的自动属性有点困惑,例如
public string Forename{ get; set; }
我知道您通过不必声明私有(private)变量来节省代码,但是当您不使用任何 get 或 set 逻辑时,属性有什么意义呢?为什么不直接使用
public string Forename;
我不确定这两个语句之间的区别是什么,我一直认为如果您想要额外的 get/set 逻辑,您会使用属性?
最佳答案
属性可以在不破坏契约的情况下将代码放入其中,字段不能在不将它们更改为属性(并破坏接口(interface))的情况下将代码放入其中。属性可以是只读或只写的,字段不能。属性可以是数据绑定(bind)的,字段不能。
关于C# 自动属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1294660/