c#: getter/setter
本文关键字:setter getter | 更新日期: 2023-09-27 18:02:07
我在某个地方看到了下面这样的东西,想知道它意味着什么。我知道它们是getter和setter,但我想知道为什么字符串类型是这样定义的。谢谢你帮我。
public string Type { get; set; }
这些是自动实现的属性(简称自动属性(。
编译器将自动生成以下简单实现的等价物:
private string _type;
public string Type
{
get { return _type; }
set { _type = value; }
}
这是一个auto属性,它是的缩写
private string type;
public string Type
{
get { return this.type; }
set { this.type = value; }
}
在C#中:
现在可以将自动属性声明为字段:
public string FirstName { get; set; } = "Ropert";
只读自动属性
public string FirstName { get;} = "Ropert";
public string Type { get; set; }
和做没什么不同
private string _Type;
public string Type
{
get { return _Type; }
set { _Type = value; }
}
这意味着编译器在运行时定义了一个后备字段。这是自动实现属性的语法。
更多信息:自动实现属性
您还可以使用lambda表达式
public string Type
{
get => _type;
set => _type = value;
}
这是一个自动备份的属性,基本上相当于:
private string type;
public string Type
{
get{ return type; }
set{ type = value; }
}
这些被称为自动属性。
http://msdn.microsoft.com/en-us/library/bb384054.aspx
在功能上(就编译的IL而言(,它们与具有后台字段的属性相同。
随着C#6的发布,您现在可以对私有属性执行类似的操作。
public constructor()
{
myProp = "some value";
}
public string myProp { get; }