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:
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.