5.12事件
以下規則概述事件的命名指南:
1)對事件處理程序名稱使用 EventHandler 後綴。
2)指定兩個名為 sender 和 e 的參數。sender 參數表示引發事件的對象。sender 參數始終是object 類型的,即使在可以使用更為特定的類型時也如此。與事件相關聯的狀態封裝在名為 e 的事件類的實例中。對 e 參數類型使用適當而特定的事件類。
3)用 EventArgs 後綴命名事件參數類。
4)考慮用動詞命名事件。
5)使用動名詞(動詞的“ing”形式)創建表示事件前的概念的事件名稱,用過去式表示事件後。例如,可以取消的 Close 事件應當具有 Closing 事件和 Closed 事件。不要使用BeforeXxx/AfterXxx 命名模式。
6)不要在類型的事件聲明上使用前綴或者後綴。例如,使用 Close,而不要使用 OnClose。
7)通常情況下,對於可以在派生類中重寫的事件,應在類型上提供一個受保護的方法(稱為 OnXxx)。此方法只應具有事件參數 e,因為發送方總是類型的實例。
以下示例闡釋具有適當名稱和參數的事件處理程序。
public delegate void MouseEventHandler(object sender, MouseEventArgs e) ;
以下示例闡釋正確命名的事件參數類。
public class MouseEventArgs : EventArgs
{
int x;
int y;
public MouseEventArgs(int x, int y)
{
this.x = x;
this.y = y;
}
public int X
{
get
{
return x;
}
}
public int Y
{
get
{
return y;
}
}
}