Events can be of any delegate type, not just EventHandler and EventHandler<T>. For example:
//Declaring an event
public event Action<Param1Type, Param2Type, ...> EventName;
This is used similarly to standard EventHandler events:
//Adding a named event handler
public void HandlerNa...