2011-01-11 36 views

回答

2

以「On ....」開頭的方法被用作約定。這些方法不是「 「以任何方式與事件或事件」綁定「(考慮到普遍接受的註冊事件的定義/程序)。

他們實際上做的是提高以下「開」字頭的話建議的事件。

例如:

protected void OnSelectedIndexChanged(EventArgs e) 
{ 
    if(SelectedIndexChanged!= null) 
     SelectedIndexChanged(this, e); 
} 

其中某處像這樣定義SelectedIndexChanged事件:

public event EventHandler SelectedIndexChanged; 

公約和.NET的做法指出,每個事件,你應該有一個重寫保護方法那引發了事件。

在派生類中,你可以做這樣的事情:

protected override void OnSelectedIndexChanged(EventArgs e) 
{ 
    base.OnSelectedIndexChanged(e); 

    // your custom code here 
} 

注:要絕對正確的,這個事件和其他人可能使用不同的派生類型從EventArgs類,但概念是相同的。

+0

謝謝利維烏先生M.這正是我正在尋找的。 – odiseh 2011-01-11 07:43:42

2

你的說法不完全正確的。

只要該方法具有所需的簽名,就可以將任何方法綁定到該事件。 並不是每個事件都與一個方法有關,並且並不是每個方法都以「Onxxx」開頭。命名約定在開發人員中很受歡迎。 (默認情況下Visual Studio的命名約定是[組件名稱] _ [事件名稱]

您可以從設計視圖,屬性子面板,選擇事件選項卡(圖標類似於暴風雨)你會得到事件列表和方法(如果有的話)

2

這是類設計約定,而不是.NET強制執行的事情,大多數.NET和第三方庫使用這個約定,它的簡單代碼,需要被編碼以符合這個約定,如果你想問這個,它不是自動的,

相關問題