2

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

在.net v2之后设置这样的属性真的可以吗

    public string LocaleName
    {
        get;
        set;
    }

不需要内部字段?似乎编译器最近会处理这个问题?

4

6 回答 6

10

是的,这是 C# 3.0 中的一个新特性

于 2009-07-22T19:53:15.010 回答
3

只要您不需要进行任何检查以查看值是否设置正确,就可以了。

您可以查看C# Specification

于 2009-07-22T19:53:58.410 回答
3

如您所知,您还可以执行以下操作:

public string MyString
{
   get;
   private set;
}

它为您提供了一个公共访问者,但一个私人二传手。

于 2009-07-22T20:05:51.913 回答
1

是的,这些被称为“自动实现的属性”。编译器将为您的属性创建一个支持字段。

因为“自动实现的属性”是“C# 编译器技巧”,所以只要使用 C# 3.0 编译器编译代码,就可以在代码和目标 .NET Framework 2.0 中使用它们。

于 2009-07-22T19:54:13.090 回答
0

是的,它们被称为自动属性,并将在幕后生成支持字段。

于 2009-07-22T19:54:29.580 回答
0

是的。在 C# 3.0 及更高版本中,当属性访问器中不需要额外的逻辑时,自动实现的属性使属性声明更加简洁。它们还使客户端代码能够创建对象 当您如下例所示声明属性时,编译器会创建一个私有的匿名支持字段,只能通过该属性的 get 和 set 访问器访问。

于 2009-07-22T19:56:05.100 回答