這個問題來自論壇提問,對於初學者來說確實比較陌生,msdn參考文檔
http://msdn.microsoft.com/zh-cn/library/system.attribute.ASPx
我們先直觀的表達一下他的作用之一:
比如一個自定義Windows控件的DefaultEvent可以表示一個控件默認事件:
如你雙擊form他會默認到onLoad事件中,雙擊button,他會默認到onclick事件中。
一個簡單的測試,你添加一個Windows窗體1叫Form1,然後增加如下代碼
[DefaultEvent("FormClosed")]
public partial class Form1 : Form
然後新建一個窗體2,繼承自窗體1
public partial class Form2 : Form1然後把Form2切換到設計器的模式,然後雙擊Form2的工作區域,會直接定位到代碼的 private void Form2_FormClosed(object sender,FormClosedEventArgs e)
...{
}而不是先前的 private void Form2_Load(object sender, EventArgs e)
...{
}
對於這個語法比較好奇的朋友請仔細閱讀上面msdn的參考文檔.
簡要的說他不是系統規定死的寫法,是屬性類,
可以在運行期去決定做什麼,就像一般的類.
除了系統已經定義的還可以自己定義.
中括號中的語法其實就是一個類的構造函數的調用.
我們可以通過反射得到屬性類的實例.
屬性類可以修飾類,變量,屬性,成員函數,事件等