我在某个地方看到了类似下面的内容,并想知道这意味着什么。我知道他们是getter和setter,但是想知道为什么字符串Type是这样定义的。谢谢你的帮助。
public string Type { get; set; }
答案 0 :(得分:147)
这些是Auto-Implemented Properties(简称自动属性)。
编译器将自动生成以下简单实现的等效项:
private string _type;
public string Type
{
get { return _type; }
set { _type = value; }
}
答案 1 :(得分:29)
这是一个auto-property,它是这个的简写符号:
private string type;
public string Type
{
get { return this.type; }
set { this.type = value; }
}
答案 2 :(得分:21)
在C#6中
现在可以将自动属性声明为字段:
public string FirstName { get; set; } = "Ropert";
只读自动属性
public string FirstName { get;} = "Ropert";
答案 3 :(得分:13)
public string Type { get; set; }
与
一样没有什么不同private string _Type;
public string Type
{
get { return _Type; }
set { _Type = value; }
}
答案 4 :(得分:8)
这意味着编译器在运行时定义了一个支持字段。这是自动实现属性的语法。
答案 5 :(得分:5)
它是一个自动支持的属性,基本上等同于
private string type;
public string Type
{
get{ return type; }
set{ type = value; }
}
答案 6 :(得分:4)
答案 7 :(得分:1)
我知道这是一个老问题,但随着C#6的发布,你现在可以为私人财产做这样的事情了。
public constructor()
{
myProp = "some value";
}
public string myProp { get; }
答案 8 :(得分:0)
您可以使用lambada表达式
public string Type
{
get => _type;
set => _type= value;
}