evento Action <> vs event EventHandler <>
Existe alguma diferença entre declararevent Action<>
eevent EventHandler<>
.
Assumindo que não importa qual objeto realmente levantou um evento.
por exemplo:
public event Action<bool, int, Blah> DiagnosticsEvent;
vs
public event EventHandler<DiagnosticsArgs> DiagnosticsEvent;
class DiagnosticsArgs : EventArgs
{
public DiagnosticsArgs(bool b, int i, Blah bl)
{...}
...
}
o uso seria quase o mesmo em ambos os casos:
obj.DiagnosticsEvent += HandleDiagnosticsEvent;
Há várias coisas que eu não gostoevent EventHandler<>
padronizar:
Mais código significa mais código para manter sem qualquer vantagem clara.
Como resultado, eu prefiroevent Action<>
No entanto, somente se houver muitos argumentos de tipo em Action <>, será necessária uma classe extra.