这是自动属性的正确语法吗?

时间:2009-07-22 19:52:29

标签: c# automatic-properties

我已经编程了很长时间,很难跟上语言的变化......

在.net v2

之后设置这样的属性真的没问题
    public string LocaleName
    {
        get;
        set;
    }

不需要内场?好像编译器最近会处理这个问题?

6 个答案:

答案 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访问器来访问。