Visual Studio 2010 引入「自動實作屬性」,大幅減少撰寫 get/set 樣板碼。編譯器自動產生私有支援欄位 (_PropertyName) 並關聯存取器,但開發者需了解其運作細節與限制。
public string Name { get; set; }private string _Name; (支援欄位)支援欄位命名規則:_ + 屬性名稱。若類別中已存在同名欄位 (如慣用 _name 做私有變數),將導致編譯錯誤。建議避免使用底線開頭命名私有欄位,或改用 m_name 等前綴。
| 特性 | 說明 |
|---|---|
| 存取修飾詞 | 永遠為 private,不可變更,與屬性本身修飾詞無關。 |
| Static/Shared | 與屬性設定同步 (屬性為 static 則支援欄位也為 static)。 |
| 屬性傳遞 | 屬性上的特殊屬性 (如 [ReadOnly]) 不會 自動套用至支援欄位。 |
| 存取方式 | 程式碼中直接以 _PropertyName 存取;偵錯視窗可見;IntelliSense 預設不顯示。 |
public get; private set; 不支援。[NonSerialized] 等。在 Property 陳述式後空行輸入 g 或 s 再按 Enter,即可自動展開 Get/Set 區塊,類似 Word 自動完成日期。
_ 開頭私有欄位衝突。善用自動實作屬性可提升程式碼簡潔度,但理解其背後機制與限制,才能避免撰寫錯誤代碼。