以下两种编码风格有哪些优点和区别......
public void HelloWorld () {
private string _hello;
public string Hello {
get
{
return _hello;
}
set
{
_hello = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
要么
public void HelloWorld () {
public string Hello { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的偏好是简单的简单代码,但有兴趣听到意见,因为我看到许多开发人员坚持漫长的路线.
Tho*_*que 14
第一个允许您自定义访问者.例如,您可能希望验证setter中的值,或者懒惰地在getter中加载该值.它还允许您创建支持字段readonly.
第二种形式不允许自定义(除了getter和setter的可访问性).它只是第一种形式的速记等价物.
如果您不需要在getter和setter中执行任何特定操作,则第二种形式通常更方便.
您的第二个示例不是公共变量,而只是一个自动属性。汽车属性只是第一个示例的语法糖。
就一个相对于另一个的优点而言,第一种方法使您可以在getter或setter中做额外的工作(例如检查null或属性更改通知):
private string _name;
public string Hello {
{
get
{
if(_name == null)
_name = "Default Name";
return _name;
}
set
{
_name = value;
OnPropertyChanged("Hello");
}
}
Run Code Online (Sandbox Code Playgroud)