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