MSDN on naming events:
事件总是指一些动作,要么是正在发生的,要么是已经发生的。因此,与方法一样,事件以动词命名,动词时态用于表示事件发生的时间。
√ 做用动词或动词短语命名事件。
示例包括Clicked、Painting、DroppedDown 等。
√ 一定要使用现在时和过去时,给事件命名之前和之后的概念。
例如,在窗口关闭之前引发的关闭事件将被称为Closing,在窗口关闭后引发的事件将被称为Closed。
X 请勿使用“Before”或“After”前缀或后缀来表示前后事件。使用刚才描述的现在时和过去时。
√ DO 使用“EventHandler”后缀命名事件处理程序(用作事件类型的委托),如下例所示:
public delegate void ClickedEventHandler(object sender, ClickedEventArgs e);
√ DO 在事件处理程序中使用名为 sender 和 e 的两个参数。
sender 参数表示引发事件的对象。 sender 参数通常是 object 类型,即使可以使用更具体的类型。
√ 做使用“EventArgs”后缀命名事件参数类。
所以,事件应该用动词或动词短语命名。而不是OnSomething,使用Something,假设Something实际上是一个动词,如Close、Click或ManagedPiplelineAbandoning和ManagedPiplelineAbandoned。
事件的代表应该以EventHandler 后缀命名,例如CloseEventHandler、ClickEventHandler、ManagedPiplelineAbandoningHandler 等。
对于与事件无关的委托,请使用名词,例如 EventProcessor 或 ItemRetriever,而该委托的实例是动词,例如 processEvent 或 retrieveItem。
您的委托引用的大小写应该是驼峰式,除非该引用不是私有的。不过,我想不出你会有一个非私有委托字段的情况。
但是,由于建议使用传统的事件处理程序签名(即object sender, EventArgs e)),您应该use a generic event handler 而不是自己定义。也就是说,您的事件将被定义为:
event EventHandler<SomethingEventArgs> Something;