2010-08-18 92 views

回答

4

我能想到的最接近你想說的是Auto-Implemented Properties

前C#3.0,如果你想寫一個公共屬性,你需要做到以下幾點:

private string _name; 

public string Name 
{ 
    get { return _name; } 
    set { _name = value; } 
} 

它沒有邏輯,是大量的樣板代碼真的。

現在,在C#3.0,你可以去:

public string Name { get; set; } 

的框架可以照顧到所有的樣板東西給你。只要您仍遵守與傳統屬性相同的規則,您也可以混合並匹配獲取者/設置者的不同可見性級別。

+0

哇,它的一種簡單的編寫代碼的方式,謝謝 – Arash 2010-08-18 09:49:13

0

您可能已經聽說過術語Auto-Implemented Properties

這指的是使用的速記寫入像這樣的屬性:

public string Name { get; set; } 

注意的是,以上是快了很多,比這個寫:

private string _name; 
public string Name 
{ 
    get { return _name; } 
    set { _name = value; } 
} 

還要注意的是自動實現版本不包含任何明確的私有字段聲明;這是因爲這個字段是由編譯器自動生成的,所以術語「自動實現」。

4

如果你的意思的屬性,看看這裏:Auto-Implemented Properties (C# Programming Guide)

例如:

public class PurchaseOrder 
{ 
    public double TotalPurchases { get; set; } 
    public double MaxPurchases { get; private set; } 

    public PurchaseOrder() 
    { 
     this.MaxPurchases = 10; 
    } 
} 

TotalPurchases可以讀取或任何其他公共呼叫寫入。
MaxPurchases僅由當前對象設置,但可以通過任何其他公共呼叫讀取。

1

你的意思是Auto-Implemented Properties

從MSDN:

在C#3.0和更高,自動實現的屬性使屬性聲明更簡潔當在屬性訪問不需要額外的邏輯。它們還使客戶端代碼能夠創建對象。 ...編譯器創建一個私人的,匿名的後臺字段,只能通過屬性的get和set訪問器來訪問。

實質上,它的簡單語法用於聲明具有簡單getter和setter的屬性。

相關問題