c#:getter / setter

我在某个地方看到类似的东西,想知道这是什么意思。 我知道他们是getter和setter,但是想知道为什么stringType是这样定义的。 谢谢你帮助我

public string Type { get; set; } 

这些是自动执行的属性 (简称自动属性)。

编译器会自动生成以下简单实现的等价物:

 private string _type; public string Type { get { return _type; } set { _type = value; } } 

这是一个自动属性 ,它是这样的速记符号:

 private string type; public string Type { get { return this.type; } set { this.type = value; } } 
 public string Type { get; set; } 

那么做没有什么不同

 private string _Type; public string Type { get { return _Type; } set { _Type = value; } } 

这意味着编译器在运行时定义了一个后台字段。 这是自动实现的属性的语法。

更多信息: 自动执行的属性

在C#6中:

现在可以像字段一样声明自动属性:

 public string FirstName { get; set; } = "Ropert"; 

只读自动属性

 public string FirstName { get;} = "Ropert"; 

它是一个自动支持的属性,基本相当于

 private string type; public string Type { get{ return type; } set{ type = value; } } 

这些被称为自动属性。

http://msdn.microsoft.com/en-us/library/bb384054.aspx

在function上(以及编译的IL),它们与具有后台字段的属性相同。

我知道这是一个老问题,但随着C#6的发布,您现在可以为私有属性做这样的事情。

 public constructor() { myProp = "some value"; } public string myProp { get; }