我已经编程了很长时间,很难跟上语言的变化......
在.net v2
之后设置这样的属性真的没问题 public string LocaleName
{
get;
set;
}
不需要内场?好像编译器最近会处理这个问题?
答案 0 :(得分:10)
是的,这是C#3.0中的新功能
答案 1 :(得分:3)
只要您不需要进行任何检查以查看值是否设置正确,就可以了。
您可以查看C# Specification。
答案 2 :(得分:3)
您也知道,您也可以这样做:
public string MyString
{
get;
private set;
}
它为您提供了一个公共访问者,但却是一个私有的setter。
答案 3 :(得分:1)
是的,这些被称为'auto implemented properties'。编译器将为您的属性创建一个支持字段。
因为“自动实现的属性”是“C#编译器技巧”,所以只要使用C#3.0编译器编译代码,就可以在代码中使用它们并以.NET Framework 2.0为目标。
答案 4 :(得分:0)
是的,它们被称为automatic properties,并将在幕后生成支持字段。
答案 5 :(得分:0)
是。在C#3.0及更高版本中,当属性访问器中不需要其他逻辑时,自动实现的属性使属性声明更简洁。它们还使客户端代码能够创建对象当您声明一个属性时,如下例所示,编译器创建一个私有的匿名支持字段只能通过属性的get和set访问器来访问。