According to the accepted answer here there is no difference, but in MSDN:
Typically, you do not have to declare a delegate for an event, because you can use either the
EventHandler
or theEventHandler<TEventArgs>
delegate. You should declare a delegate only in rare scenarios, such as making your class available to legacy code that cannot use generics.
So it seems to me that Microsoft highly recommend the generic approach over the simplified and less typing one, but I cannot figure out why or what is the difference?