2009-07-22 42 views
2

我已经编写了这么久的辛苦与语言有时赶不上变化......这是自动属性的正确语法吗?

难道真的确定.NET v2之后设置属性,这样

public string LocaleName 
    { 
     get; 
     set; 
    } 

不需要的内领域?似乎编译器最近处理这个问题?

+0

您可能会改变您的问题,以反映您询问您安装了哪个版本的C#。 – Kredns 2009-07-22 20:01:10

+0

这是正确的,你可以限制每个需要的accesiobility E.g.公共字符串LocaleNam {get;私人设置;} – 2009-07-22 20:05:03

回答

10

是的,这是在C#3.0

3

一个新功能。它是罚款,只要你不需要做任何检查,看看是否该值被设置得正确的方式。您可以查看C# Specification

1

是的,这些被称为'auto implemented properties'。编译器将为您的属性创建一个后台字段。因为'自动实现的属性'是'C#编译技巧',所以只要使用C#3.0编译器编译代码,就可以在代码和目标.NET Framework 2.0中使用它们。

0

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

3

只要你知道,你也可以做这样的事情:

public string MyString 
{ 
    get; 
    private set; 
} 

它给你一个公共的访问,但私人二传手。