自动属性是C# 5.0(含)之后,微软新增的语法糖,全称为 Auto-Implemented Properties。如果属性的set和get访问器中没有任何逻辑,就可以使用自动实现的属性。不需要声明私有化字段。编译器会自动创建它。使用自动实现的属性,就不能直接访问字段,因为不知道编译器生成的名称。使用自动实现的属性,就不能再属性中验证属性的有效性。自动实现的属性可以使用属性初始化器来初始化。
C#自动属性可以使我们节约一部分时间,即它给我们简化了敲击代码时间。也就是避免了和原来一样,我们手工声明一个私有成员属性变量和编写get和set逻辑。
下面我们使用一个人类来对比一下:
class Person
{
private in Id;
public string id
{
set{Id=value;}
get{return Id;}
}
private string username;
public string UserName
{
set{username=value;}
get{return username;}
}
}
以上案例等价于下面:
class Person
{
public in Id{get;set;}
public string UserName{get;set;}
}