Genérica incorporada EventArgs para contener sólo una propiedad?
Pregunta
Tengo un número de clases EventArgs con sólo un campo y una propiedad adecuada para leerlo:
public class SomeEventArgs : EventArgs
{
private readonly Foo f;
public SomeEventArgs(Foo f)
{
this.f = f;
}
public Foo Foo
{
get { return this.f; }
}
}
¿Hay alguna clase genérica incorporada, para poner en práctica este tipo de comportamiento o tengo que rodar mi propia?
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. Escribí un en Microsoft Connect
Solución
No creo que haya.
Parece que no son el único que preguntarse a sí mismo esta pregunta.
Echar un vistazo aquí
Otros consejos
Si hay es una, ciertamente no está bien publicitadas! (Es decir que no es algo con lo que significa para el uso de material de uso general, como Func<T>
.) He pensado en lo mismo que a mí mismo antes de ahora. No es un requisito rara, la OMI.
Una desventaja de esto es que no tiene un nombre significativo para la propiedad, por supuesto - es como un equivalente de EventArgs
Tuple
. Pero si usted tiene varios casos de uso diferentes para esto y en realidad ser obvio lo que el significado es, ir a por ello:)
En esta página, en el fondo se puede ver todas las clases se heredan de la clase EventArgs: http://msdn.microsoft.com/en-us/library/ system.eventargs.aspx
El más adecuado es ReturnEventArgs http://msdn.microsoft.com/ en-us / library / ms615572.aspx pero esta clase se encuentra en PresentationFramework.dll, que sólo se hace referencia mediante proyectos de WPF.
Así que recomiendo para crear su propio.