event Action <> vs event EventHandler <>
Gibt es einen Unterschied zwischen der Deklaration?event Action<>
undevent EventHandler<>
.
Angenommen, es spielt keine Rolle, welches Objekt tatsächlich ein Ereignis ausgelöst hat.
zum Beispiel:
public event Action<bool, int, Blah> DiagnosticsEvent;
vs
public event EventHandler<DiagnosticsArgs> DiagnosticsEvent;
class DiagnosticsArgs : EventArgs
{
public DiagnosticsArgs(bool b, int i, Blah bl)
{...}
...
}
Die Verwendung wäre in beiden Fällen nahezu gleich:
obj.DiagnosticsEvent += HandleDiagnosticsEvent;
Es gibt einige Dinge, die mir nicht gefallenevent EventHandler<>
Muster:
Mehr Code bedeutet mehr Code, der ohne klaren Vorteil verwaltet werden muss.
Daher bevorzuge ichevent Action<>
Nur wenn zu viele Typargumente in Aktion <> vorhanden sind, ist eine zusätzliche Klasse erforderlich.