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:

Zusätzliche Typdeklaration abgeleitet von EventArgsObligatorische Weitergabe der Objektquelle - oft kümmert es niemanden

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.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage