intégré générique EventArgs pour tenir une seule propriété?
Question
J'ai un certain nombre de classes de EventArgs avec un seul champ et une propriété appropriée pour le lire:
public class SomeEventArgs : EventArgs
{
private readonly Foo f;
public SomeEventArgs(Foo f)
{
this.f = f;
}
public Foo Foo
{
get { return this.f; }
}
}
Y at-il intégré, classe générique pour mettre en œuvre un tel comportement ou je dois rouler ma propre?
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. J'ai écrit un suggestion sur Microsoft Connect
Autres conseils
Si un, il est certainement pas bien médiatisée! (À savoir ce n'est pas quelque chose que vous signifie à utiliser pour des choses à usage général, comme Func<T>
.) J'y ai pensé la même chose moi-même avant maintenant. Ce n'est pas une exigence rare, l'OMI.
Un inconvénient est qu'il ne dispose pas d'un nom significatif pour la propriété, bien sûr - c'est comme un équivalent EventArgs
de Tuple
. Mais si vous avez plusieurs différents cas d'utilisation pour cela et il en fait être évident que le sens est, allez-y:)
Sur cette page en bas, vous pouvez voir toutes les classes sont héritées de la classe EventArgs: http://msdn.microsoft.com/en-us/library/ system.eventargs.aspx
Le plus approprié est ReturnEventArgs http://msdn.microsoft.com/ fr-fr / bibliothèque / ms615572.aspx mais cette classe est situé dans PresentationFramework.dll, qui est référencé que par des projets WPF.
Je recommande donc de créer votre propre un.