C#自动实现的属性
示例
自动实现的属性在C#3中引入。
自动实现的属性用空的getter和setter(访问器)声明:
public bool IsValid { get; set; }
当在代码中写入自动实现的属性时,编译器会创建一个私有的匿名字段,该字段只能通过属性的访问器进行访问。
上面的自动实现的属性语句等效于编写以下冗长的代码:
private bool _isValid; public bool IsValid { get { return _isValid; } set { _isValid = value; } }
自动实现的属性的访问器中不能包含任何逻辑,例如:
public bool IsValid { get; set { PropertyChanged("IsValid"); } } //无效的代码
但是,自动实现的属性对其访问器可以具有不同的访问修饰符:
public bool IsValid { get; private set; }
C#6允许自动实现的属性根本没有设置器(使其不可变,因为它的值只能在构造函数中设置或进行硬编码):
public bool IsValid { get; } public bool IsValid { get; } = true;
有关初始化自动实现的属性的更多信息,请阅读自动属性初始化程序文档。