0

执行和执行有什么区别

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;
}

如果没有区别,那么为什么我在库程序集中看到第二个实现如此普遍?

4

1 回答 1

0

我想了两个原因:

  1. 它隐藏了实现:属性 var 可能使用不是 var 的私有字段,或者可能根本不使用私有字段,客户端不会知道这一点

  2. 更容易更改:如果在代码中使用字段 obj.var 100 次,并且在某些时候必须更改该字段的某些内容,则必须修改所有调用,而如果您有属性,则可以更简单地修改实现无需修改所有调用的方式(至少如果您不更改属性的签名)

可能是我现在想不起来的其他原因

于 2013-05-29T14:41:53.203 回答