Domanda

Ho un certo numero di classi EventArgs con un solo campo e una proprietà adeguata per leggerla:

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

C'è qualche classe generica built-in, per implementare tale comportamento o devo rotolare il mio?

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. Ho scritto un suggerimento su Microsoft Connect

È stato utile?

Soluzione

Non credo che ci sia.
Sembra che non sono l'unico a porsi questa domanda.
Date un'occhiata qui

Altri suggerimenti

Se non ci è uno, di certo non è ben pubblicizzato! (Vale a dire che non è qualcosa che ti significa per l'uso per le cose di uso generale, come Func<T>.) Ho pensato la stessa cosa me stesso prima ora. Non è un requisito rara, IMO.

Un lato negativo di questo è che non ha un nome significativo per la proprietà, ovviamente - è come un EventArgs equivalente di Tuple. Ma se si dispone di diversi casi d'uso differenti per questo e in realtà essere evidente quale sia il significato è, andare per esso:)

In questa pagina, in fondo, è possibile vedere tutte le classi sono ereditati dalla classe EventArgs: http://msdn.microsoft.com/en-us/library/ system.eventargs.aspx

Il più appropriato è ReturnEventArgs http://msdn.microsoft.com/ it-it / library / ms615572.aspx ma questa classe si trova in PresentationFramework.dll, a cui fa riferimento solo ai progetti di WPF.

Quindi vi consiglio di creare uno proprio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top