所以我有一个简单的类,User
,这是这样的(忽略可怕的空白使用,想继续保持简短在线阅读):使用类内访问器是不好的做法吗?
public class User
{
private string username;
public string Username
{
get
{
return username;
}set{
if(Validate.usernameIsValid(value)){username = value;}
else{throw new InvalidArgumentException("Username is invalid");}
}
}
//some more fields
public User(String argUsername)
{
this.Username = argUsername;
//OR validate again before:
username = argUsername;
}
}
是更好地使用类中的公共存取使用它的验证?或者那是不好的做法,在这种情况下,我应该在设置专用username
字段之前重新验证吗?
这是可以的,你使用自封装字段 – Grundy
我认为accessor的主要工作是只有。否则,我们可以使用公共变量。只是为了验证我们有属性的输入。 –
请参阅http://blogs.msdn.com/b/ericlippert/archive/2009/01/14/automatic-vs-explicit-properties.aspx –