Auto-Properties 其实正确应该是 Auto-Implemented Properties 也就是自动实作的属性(在 C# 3.0 之后出来的功能)。
在 3.0 之前,我们常常的要宣告一个属性如:
private int _age;
public int Age
{
get
{
return _age;
}
set
{
_age = value;
}
}
这样子写,其实就等於是在练打字。C# 3.0 之后就可以写成:
public string Name { get; set; }
这种自动实作的属性,适合在:
对属性值的存取没有其他必要处理逻辑的时候。
而 C# 6.0 则又新增了,针对自动实作属性的初始化语法。如下:
public int Age {get;set;} = 30;
public string Name {get;set;} = "Calvin'
public int ReadOnlyAge {get;} = 30; // 唯读的也可以初始设定
在以前的版本,为了初始化自动实作属性,往往我们就必须要在构造函式中去完成初始值的设定。
现在新的语法,可以直接在宣告时,设定初始值。
只是一个简单的 syntax sugar.
下一次聊到 Primary Constructors 时,会再提到这个新功能。