使用特性,可以有效地將元數據或聲明性信息與代碼(程序集、類型、方法、屬性等)相關聯。 將特性與程序實體相關聯后,可以在運行時使用反射這項技術查詢特性。
在 C# 中,通過用方括號 ([]) 將特性名稱括起來,並置於應用該特性的實體的聲明上方以指定特性。
按照慣例,所有特性名稱都以 Attribute 結尾。 但是,面向運行時的幾種語言(如 Visual Basic 和 C#)無需指定特性的全名。 例如,若要初始化 System.ObsoleteAttribute,只需將它引用為 Obsolete 即可。
指定方法實現的屬性MethodImplAttribute
同步方法:
- [MethodImplAttribute(MethodImplOptions.Synchronized)]標簽應用到實例方法,相當於對當前實例加鎖 lock(this)。
- [MethodImplAttribute(MethodImplOptions.Synchronized)]標簽應用到靜態方法,相當於對當前類型加鎖。如 WithDraw 是靜態方法,就相當於 lock (typeof(Account))
標記不再使用的程序元素ObsoleteAttribute
過時警告:
- [ObsoleteAttribute("過時方法、屬性、類等,請使用新xxx方法、屬性、類等", false)]
- [ObsoleteAttribute()]或[ObsoleteAttribute]
過時錯誤:
- [ObsoleteAttribute("過時方法、屬性、類等,請使用新xxx方法、屬性、類等", true)]
指定屬性或事件的說明DescriptionAttribute
DescriptionAttribute更多用於顯示枚舉變量的中文注釋,反射枚舉元素的DescriptionAttribute的值顯示到界面。
