查看以下属性:
private string _name;
public string Name
{
get
{
return _name;
}
set
{
_name = value
}
}
假设我需要访问name属性,并且我在声明此属性的同一个类中的方法中,我应该使用this.Name还是this._name?使用公共成员是更好的做法还是至少更清洁?
答案 0 :(得分:4)
您可以使用自动属性简化此代码:
public string Name { get; set; }
现在您可以使用方法中的Name
属性。
当你的getter / setter中有一些更复杂的逻辑时,会使用支持字段。然后,根据您是否需要访问该字段或通过getter / setter中的逻辑,您将使用该字段或属性。
答案 1 :(得分:1)
我认为最好的例子就是这个。如果你使用DataBindings属性,通常看起来像这样:
public string Name
{
get { return _name; }
set
{
_name = value;
OnPropertyChanged("Name");
}
}
因此,如果您只是想在此课程中获取该名称,则无论您使用this.Name
还是this._name
都无关紧要。
另一方面,如果你想设置它,那真的取决于你是否要更新用户界面。
我个人的惯例是,只要有可能,我就会使用私人支持。
在你的情况下,如果getter和setter中没有任何逻辑 - 一个auto属性就足够了。