Est-il une définition de type équivalent en C#, ou d'une certaine manière pour obtenir une sorte de comportement similaire? J'ai fait quelques recherches sur google, mais partout où je regarde, semble être négative. Actuellement, j'ai une situation similaire à la suivante:
class GenericClass<T>
{
public event EventHandler<EventData> MyEvent;
public class EventData : EventArgs { /* snip */ }
// ... snip
}
Maintenant, il ne prend pas un scientifique pour comprendre que cela peut très rapidement conduire à beaucoup de saisie (toutes mes excuses pour l'horrible jeu de mots) lorsque l'on tente de mettre en œuvre un gestionnaire pour l'événement. Il finirais quelque chose comme ceci:
GenericClass<int> gcInt = new GenericClass<int>;
gcInt.MyEvent += new EventHandler<GenericClass<int>.EventData>(gcInt_MyEvent);
// ...
private void gcInt_MyEvent(object sender, GenericClass<int>.EventData e)
{
throw new NotImplementedException();
}
Sauf que, dans mon cas, j'étais déjà à l'aide d'un type complexe, et pas seulement un int. Ça serait bien si c'était possible de le simplifier un peu...
Edit: c'est à dire. peut-être typedefing le Gestionnaire d'événements au lieu d'avoir à les redéfinir pour obtenir un comportement similaire.