evento Acción <> vs evento EventHandler <>

¿Hay alguna diferencia entre declararevent Action<> yevent EventHandler<>.

Suponiendo que no importa qué objeto realmente provocó un evento.

por ejemplo:

public event Action<bool, int, Blah> DiagnosticsEvent;

vs

public event EventHandler<DiagnosticsArgs> DiagnosticsEvent;

class DiagnosticsArgs : EventArgs
{
    public DiagnosticsArgs(bool b, int i, Blah bl)
    {...}
    ...
}

El uso sería casi el mismo en ambos casos:

obj.DiagnosticsEvent += HandleDiagnosticsEvent;

Hay varias cosas que no me gustan deevent EventHandler<> modelo:

Declaración de tipo extra derivada de EventArgsPaso obligatorio de la fuente del objeto - a menudo a nadie le importa

Más código significa más código para mantener sin ninguna ventaja clara.

Como resultado, prefieroevent Action<>

Sin embargo, solo si hay demasiados argumentos de tipo en Acción <>, se requerirá una clase adicional.

Respuestas a la pregunta(6)

Su respuesta a la pregunta