MSDN关于事件命名:
事件总是涉及到某些动作,无论是正在发生的还是已经发生的。因此,与方法一样,事件也使用动词进行命名,使用动词时态来指示事件被触发的时间。
√ 应该使用动词或动词短语来命名事件。
例如,Clicked、Painting、DroppedDown等。
√ 应该使用现在时态和过去时态来为事件命名,体现前后概念。
例如,在窗口关闭之前引发的关闭事件应该被称为Closing,在窗口关闭之后引发的关闭事件应该被称为Closed。
X 不要使用“Before”或“After”前缀或后缀来表示前/后事件。请如上所述使用现在时态和过去时态。
√ 应该使用“EventHandler”后缀来为事件处理程序(在事件中用作类型的委托)命名,如以下示例所示:
public delegate void ClickedEventHandler(object sender, ClickedEventArgs e);
√ 要在事件处理程序中使用名为sender和e的两个参数。
发送器参数表示引发事件的对象。发送器参数通常是object类型,即使可能要使用更具体的类型。
√ 要用"EventArgs"作为事件参数类的后缀来命名。
因此,事件应该以动词或动词短语命名。不要使用OnSomething,而是使用Something,假设Something实际上是一个动词,比如Close、Click、ManagedPiplelineAbandoning和ManagedPiplelineAbandoned。
事件的委托应该以EventHandler后缀命名,例如CloseEventHandler、ClickEventHandler、ManagedPiplelineAbandoningHandler等。
对于与事件无关的委托,请使用一个名词,比如EventProcessor或ItemRetriever,而代表该委托的实例则是一个动词,比如processEvent或retrieveItem。
你的委托引用应该采用驼峰命名法,除非该引用不是私有的。我想不到有哪种情况下会有非私有委托字段。
然而,由于建议使用传统的事件处理程序签名(即object sender, EventArgs e),因此你应该使用通用事件处理程序代替定义自己的事件处理程序。也就是说,你的事件应该定义为类似以下内容:
event EventHandler<SomethingEventArgs> Something;