The answers in this question claim that it is impossible to specify a default type argument that will be used if the consumer of the generic class does not specify a type.
But when addressing the raising of an event using the pre-defined generic EventHandler delegate... if you have no use for any data that might be passed within the EventArgs parameter, you do not actually have to specify a type argument. In other words, instead of using public event EventHandler<TEventArgs> EventDelegate;
, you can just use public EventHandler EventDelegate;
In my extremely limited use of generics, I have found it to be impossible to use a generic class without specifying a type argument, and the answers given in response to the linked question would agree with this, so how is it that the predefined generic EventHandler<TEventArgs>
delegate violates this rule?