2009-07-22 56 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; 
} 

它給你一個公共的訪問,但私人二傳手。