在C#中,属性需要引用私有成员变量,还是只需声明属性并直接在类代码中使用它们?
如果前者是最佳实践,那么这会排除使用C#属性的短手吗?即
public string FirstName { get; set; }
Run Code Online (Sandbox Code Playgroud)
Ree*_*sey 27
属性,当这样实现时:
public string FirstName { get; set; }
Run Code Online (Sandbox Code Playgroud)
自动创建私有成员变量(编译器为您执行此操作),因此您不必担心它.这将与您执行的操作完全相同:
private string firstName;
public string FirstName {
get { return firstName; }
set { firstName = value; }
}
Run Code Online (Sandbox Code Playgroud)
没有理由不使用自动属性({get; set;}).提供与创建自己的私有成员变量相同的优点.
此外,如果您以后决定需要进行额外处理(例如,如果您决定在属性设置器中实现INotifyPropertyChanged),则可以在不更改公共API的情况下添加此项,但需要手动添加支持字段.