我在什么地方看到了下面这样的东西,我想知道这意味着什么。我知道它们是 getter 和 setter,但是想知道为什么字符串 Type 是这样定义的。谢谢你帮我。
public string Type { get; set; }
这些被称为自动属性。
Http://msdn.microsoft.com/en-us/library/bb384054.aspx
在功能上(就编译后的 IL 而言) ,它们与带有备份字段的属性相同。
这些是 自动实现的属性(简称自动属性)。
编译器将自动生成下面这个简单实现的等价物:
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; } }
这意味着编译器在运行时定义了一个备份字段。这是自动实现属性的语法。
更多资料: 自动实现的属性
这是一个自动支持的财产,基本上等同于:
private string type; public string Type { get{ return type; } set{ type = value; } }
和做没什么区别
private string _Type; public string Type { get { return _Type; } set { _Type = value; } }
随着 C # 6的发布,您现在可以对私有属性执行类似的操作。
public constructor() { myProp = "some value"; } public string myProp { get; }
C # 6:
现在可以将 auto 属性声明为一个字段:
public string FirstName { get; set; } = "Ropert";
只读自动属性
public string FirstName { get;} = "Ropert";
还可以使用 lambda 表达式
public string Type { get => _type; set => _type = value; }