我应该使用哪种方案来更改类方法/属性中的私有字段:
public class Example
{
private int intVar = 0;
private string stringVar = string.Empty;
public int IntVar
{
get { return this.intvar; }
set { this.intvar = value; }
}
public string StringVar
{
get { return this.stringVar ; }
set { this.stringVar = value; }
}
private void SomeMethod()
{
//change fields in this way:
this.intVar = 50;
this.stringVar = "changed";
//or that way(through properties):
this.IntVar = 50;
this.StringVar = "changed";
}
}
也许在这个例子中没有什么区别,但是如果有人在属性中添加了额外的代码,并且通过属性改变字段会改变一些其他的东西呢?
你能说哪种方式更好,还是真的没有区别?
我知道从 C# 3.0 开始我可以编写自动实现的属性,但这是 C# 2.0。