Generico built-in EventArgs per contenere una sola proprietà?
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
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.