C # : getter/setter

我在什么地方看到了下面这样的东西,我想知道这意味着什么。我知道它们是 getter 和 setter,但是想知道为什么字符串 Type 是这样定义的。谢谢你帮我。

public string Type { get; set; }
309803 次浏览

这些被称为自动属性。

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; }
}
public string Type { get; set; }

和做没什么区别

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;
}