[C#][C# IN DEPTH筆記][001] C# 3.0 的自動實作屬性

  • 8342
  • 0
  • 2010-01-06

摘要:[C#][C# IN DEPTH筆記][001] C# 3.0 的自動實作屬性

"將閱讀C# IN DEPTH一書後的一些重點記錄於此,並以此來幫助自己整理知識,以利將來知使用! 2009/12/06"

在以前寫類別(class)時,常常會用下面這樣傻傻的方式去做宣告:

class Product
{
    string _Name;
    public string Name
    {
        set { _Name = value; }
        get { return _Name; }
    }
    int _Price;
    public int Price
    {
        set { _Price = value; }
        get { return _Price; }    
    }
    public Product(string name, int price)
    {
        _Name = name;
        _Price = price;
    }

    ...
}

當類別中若有包含多個屬性值時,整個類別宣告就會變得很冗長,在便利性上與維護上也是個不小的負擔,

但是今天,認識了自動實作屬性這項特色,除了有效減少程式碼的打字外,更增加了class在建立上的簡潔性與可看性,

對於維護上也是以很大的幫助!

若上述類別利用自動實作屬性改寫的話就變成下面這樣的長相:

 

class Product
{
    public string Name { get; set; }
    public int Price { get; set; }

    public Product(string name, int Price)
    {
        Name = name;
        Price = price;
    }
   
    ....
}

程式碼相對縮減不少,也美觀許多,而且更增加可讀性。

如果說對於屬性沒有需要額外的判斷(檢查資料的正確性)或者

有額外的動作(例如設定屬性質後會觸發某些事件或作相對應的動作)時,

自動實作屬性真的是很棒的特色!

而且自動屬性可以加上存取的修飾詞,

例如,若要讓上述的Name與Price變成唯獨時,只要在set前加上private的修飾就可以了!

public string Name { get; private set; }
public string Price { get; private set; }

哇!真是相當實用!

真的相見恨晚啊!晚了將近1年才認識 ...

 

2009/12/08 補充:(感謝91大的留言)
要建立自動屬性時,輸入 prop 關鍵字,在加上 TAB*2 就會把重要的部分都自動完成,
只留下型別與屬性名稱讓我們輸入!程式碼片段真是好用阿~~ :-)

 

 


MSDN 參考網址: 自動實作的屬性 (C# 程式設計手冊) http://msdn.microsoft.com/zh-tw/library/bb384054.aspx

簡單就是美 :: { 簡單其實很不簡單 }