非標準事件宣告

事件可以是任何代表型別,而不僅僅是 EventHandlerEventHandler<T>。例如:

//Declaring an event
public event Action<Param1Type, Param2Type, ...> EventName;

這與標準的 EventHandler 事件類似地使用:

//Adding a named event handler
public void HandlerName(Param1Type parameter1, Param2Type parameter2, ...) {
    /* Handler logic */
}
EventName += HandlerName;

//Adding an anonymous event handler
EventName += (parameter1, parameter2, ...) => { /* Handler Logic */ };

//Invoking the event
EventName(parameter1, parameter2, ...);

可以在單個語句中宣告相同型別的多個事件,類似於欄位和區域性變數(儘管這通常是個壞主意):

public event EventHandler Event1, Event2, Event3;

這宣告瞭三個單獨的事件(Event1Event2Event3)所有型別 EventHandler
注意:儘管某些編譯器可能在介面和類中接受此語法,但 C#規範(v5.0§13.2.3)為不允許它的介面提供語法,因此在介面中使用此語法可能與不同的編譯器不可靠。