Perhaps you are after something else:
public void dispatchEvent<T>(EventHandler<T> handler, T evt) where T: EventArgs { if (handler != null) handler(this, evt); }
Just for fun, here it is like an extension method:
public static void Raise<T>(this EventHandler<T> handler, Object sender, T args) where T : EventArgs { if (handler != null) handler(sender, args); }
source share