什么时候应该使用:
public string User { get; set; }
以及何时:
private string _user;
public string User
{
get { return _user; }
set { _user = value; }
}
以及何时:
public string User;
例如,我Class
包含user
属性。
我应该如何决定我应该使用哪一个选项?
答案 0 :(得分:1)
没有一般规则,如果您在团队中,则可能取决于您团队的约定惯例。根据经验,使用setter和getter可以让您更好地控制可以对属性执行的操作,例如验证输入,格式化输出,引发事件,确定可以私有地设置/读取属性,等
答案 1 :(得分:1)
1st(autoproperty)基本上是做第二名的简短形式。 至于用法,它有助于验证输入,引发事件等,例如
private string _user;
public string User
{
get { return _user; }
set
{
if(!(value == ""))
_user = value;
}
}
在任何情况下都建议使用getter和setter。
答案 2 :(得分:1)
作为一般经验法则,当您需要在getter或setter中执行其他操作时,您应该只使用具有支持字段的属性 - 验证某些输入,更改其他状态或提出属性更改通知,例如:
private string _user;
public string User
{
get { return _user; }
set
{
_user = value;
this.RaisePropertyChanged(x => x.User);
}
}
否则,您可以使用自动属性:
public string User { get; set; }
您不需要支持_user
字段。
就个人而言,我会避免在课堂上使用公共变量。