我已经编程了很长时间,有时很难跟上语言的变化......
在.net v2之后设置这样的属性真的可以吗
public string LocaleName
{
get;
set;
}
不需要内部字段?似乎编译器最近会处理这个问题?
我已经编程了很长时间,有时很难跟上语言的变化......
在.net v2之后设置这样的属性真的可以吗
public string LocaleName
{
get;
set;
}
不需要内部字段?似乎编译器最近会处理这个问题?
是的,这是 C# 3.0 中的一个新特性
只要您不需要进行任何检查以查看值是否设置正确,就可以了。
您可以查看C# Specification。
如您所知,您还可以执行以下操作:
public string MyString
{
get;
private set;
}
它为您提供了一个公共访问者,但一个私人二传手。
是的,这些被称为“自动实现的属性”。编译器将为您的属性创建一个支持字段。
因为“自动实现的属性”是“C# 编译器技巧”,所以只要使用 C# 3.0 编译器编译代码,就可以在代码和目标 .NET Framework 2.0 中使用它们。
是的,它们被称为自动属性,并将在幕后生成支持字段。
是的。在 C# 3.0 及更高版本中,当属性访问器中不需要额外的逻辑时,自动实现的属性使属性声明更加简洁。它们还使客户端代码能够创建对象 当您如下例所示声明属性时,编译器会创建一个私有的匿名支持字段,只能通过该属性的 get 和 set 访问器访问。