摘要:[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
簡單就是美 :: { 簡單其實很不簡單 }