在之前的开发中,属性只能在构造函数中进行初始化,如果它有定义一个后台字段的话,那这个字段就就可以在定义的地方初始化。C# 6.0 引进了一个Auto-Property initializer机制使属性可以像字段一样在它声明的时候直接初始化。
下面的代码段展示了Auto-Property初始化器是怎么工作的。
public bool MyProperty { get; set; } = false;
这样,MyProperty就被设置了一个默认值false,而不需要在其他地方初始化。这使得我们的代码更干净,更容易理解。
C# 6.0 还允许我们像下面这样创建只读属性。
public bool MyProperty { get; }
这是一个只读属性,到目前为止我们只能使用private set来给它赋值。在C# 6.0中,不需要private set,你可以声明一个属性并且使用自动属性初始化器初始化它。
public bool MyProperty { get; } =false;