屬性概觀

更新:2007 年 11 月

如果您使用過 C++,大概已經熟悉包含關鍵字 (例如 publicprivate) 的宣告,其提供有關類別成員的額外資訊。這些關鍵字藉著描述它們提供給其他類別的存取範圍更進一步定義類別成員的行為。因為編譯器 (Compiler) 明確地設計為辨識預先定義的關鍵字,您沒有機會依照傳統建立您自已的關鍵字。然而,Common Language Runtime 允許您加入類似關鍵字的描述性宣告,稱為屬性 (Attribute),以註解程式設計項目例如型別、欄位、方法和屬性 (Property)。

當您編譯您的執行階段程式碼時,它被轉換成 Microsoft Intermediate Language (MSIL) 並與編譯器產生的中繼資料一起放置在可移植執行檔 (PE) 中。屬性允許您將額外的描述資訊置入中繼資料,其可使用執行階段反映服務來擷取。編譯器會在您宣告衍生自 System.Attribute 之特殊類別的執行個體時建立屬性。

.NET Framework 會針對各種原因使用屬性並且以之應付一些問題。屬性描述如何序列化 (Serialize) 資料、指定用以強制安全性的特性,和限制 Just-in-Time (JIT) 編譯器的最佳化程度,以便保持程式碼易於偵錯的狀況。屬性也可記錄檔案名稱或程式碼作者,或在表單開發期間控制控制項和成員的可視性。

您可以使用屬性以任何您能想到的方式來描述您的程式碼,和以具創意的新方式來影響執行階段行為。屬性可讓您將自己的描述性項目加入至 C#、Visual C++、Microsoft Visual Basic 2005 或任何其他以執行階段為目標的語言中,而不需要重新撰寫您的編譯器。

請參閱

參考

System.Attribute

其他資源

使用屬性擴充中繼資料