Disons que je ne peux pas modifier la classe A.Encapsuler un événement dans une méthode?
J'ai cela dans un class A<T>
, il existe une méthode JumpNext()
:
public void JumpNext();
Il déclenche un événement dans class A<T>
, appelé Next
Et ceci dans ma classe B:
public T Next()
{
instanceofA.JumpNext();
//instanceofA.Next += something;
// wait for event
// someting(object sender, AEventArgs e)
//return e.Entry
}
Le problème est, que m y Next
méthode doit renvoyer l'instance de T
contenue dans le champ Entry
de AEventArgs
retourné par l'événement A.Next
. Alors, comment puis-je faire cela à l'intérieur d'une méthode de classe B? J'utilise .NET 2.0, mais si c'est possible dans n'importe quelle version ultérieure seulement, cela pourrait aussi bien se passer.
modifié pour utiliser les e 2.0 de syntaxe e OP demandé. –
Battez-moi par une minute. Je note que la syntaxe de la fonction lamba n'est pas une caractéristique de C# 2.0, donc la solution de Thomas Levesque exigerait que vous utilisiez une version plus récente du framework. Une bonne discussion de la différence est à http://blogs.msdn.com/ericlippert/archive/2007/01/10/lambda-expressions-vs-anonymous-methods-part-one.aspx. Notez également que vous devez gérer la possibilité que JumpNext() se lance, d'où le blocage définitif dans ma solution. – anelson
@Jonathan: Merci pour l'édition;) - @anelson: oui, il vaudrait mieux utiliser un bloc try/finally, je l'ai simplement omis par souci de simplicité ... –