的实施有什么区别
Class cl1
{
public int var{get;set;}
}
和
Class cl1
{
public int var;
}
我的意思是,两者都是这样实现的 -
void Main()
{
cl1 obj = new cl1();
obj.var = 25;
int k = obj.var;
}
如果没有区别,那么为什么我在库装配中看到第二个实现如此常见?
答案 0 :(得分:0)
我想到两个原因:
它隐藏了实现:属性var可能使用的私有字段不是var,也可能根本不使用私有字段,客户端不会知道这个
更容易更改:如果在您的代码中使用字段obj.var 100次,并且在某些时候您必须更改该字段的某些内容,您必须修改所有调用,而如果您有属性,则可以以更简单的方式修改实现,而无需修改所有调用(至少如果您不更改属性的签名)
现在还没有出现在我脑海中的其他原因