Frage

Ich habe eine Reihe von EventArgs Klassen mit nur einem Feld und eine entsprechende Eigenschaft, es zu lesen:

public class SomeEventArgs : EventArgs
{
    private readonly Foo f;
    public SomeEventArgs(Foo f)
    {
        this.f = f;
    }
    public Foo Foo
    {
        get { return this.f; }
    }    
}

Gibt es eine eingebaute, generische Klasse ein solches Verhalten zu implementieren, oder muss ich meine eigene Rolle?

public class GenericEventArgs<T> : EventArgs
{
    private readonly T value;
    public GenericEventArgs(T v)
    {
        this.value = v;
    }
    public T Value
    {
        get { return this.value; }
    }    
}

P. S. Ich schrieb einen Vorschlag auf Microsoft Connect

War es hilfreich?

Lösung

Ich glaube nicht, es gibt.
Sieht aus wie Sie sind nicht der einzige, sich diese Frage zu stellen.
Werfen Sie einen Blick hier

Andere Tipps

Wenn es is ein, es ist sicherlich nicht gut veröffentlicht! (Das heißt, es ist nicht etwas, das Sie bedeutet zu Verwendung für allgemeine Sachen, wie Func<T>.) Ich über die gleiche Sache mir gedacht habe jetzt vor. Es ist keine seltene Anforderung, IMO.

Ein Nachteil davon ist, dass es nicht einen aussagekräftigen Namen für die Eigenschaft hat, natürlich - es ist wie ein EventArgs äquivalent Tuple. Aber wenn Sie haben verschiedene Anwendungsfälle für dieses und es wird eigentlich klar sein, was die Bedeutung ist, denn es gehen:)

Auf dieser Seite unten Sie alle Klassen von EventArgs Klasse vererbt werden sehen: http://msdn.microsoft.com/en-us/library/ system.eventargs.aspx

Die am besten geeignete ist ReturnEventArgs http://msdn.microsoft.com/ en-us / library / ms615572.aspx aber diese Klasse in PresentationFramework.dll befindet, die nur von WPF-Projekten verwiesen wird.

Also ich empfehlen, einen eigenen zu erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top