J'ai un événement statique dans une méthode statique auquel je suis temporairement attaché, car je ne veux pas qu'il traîne en mémoire, ou je me retrouve dans une situation où je déclenche deux gestionnaires d'événements si je appelez le deux fois. Je n'ai pas grand-chose à dire si elles devraient être statiques ou non, et je préférerais ne pas avoir la responsabilité de la discussion/refactor.Suppression d'un événement statique en ligne
Au début, je faisais comme ça
public static void DoSomething()
{
try
{
MyStaticClass.MyEvent +=new EventHandler<HandledEventArgs>(MyStaticClass_HandleMe);
... //Doing Stuff
}
finally
{
MyStaticClass.MyEvent -=new EventHandler<HandledEventArgs>(MyStaticClass_HandleMe);//Detach from event
}
}
Cela a fonctionné très bien, mais je voudrais gérer la ligne d'événements, d'être en accord avec un autre événement dans la méthode, ainsi que la fixation d'un annuler booléen qui est local à la fonction et utilisé par l'autre événement. Ma question est, dans le scénario 2, comment puis-je nettoyer et me détacher de l'événement statique?
Cheers, il semble si évident maintenant je le vois :) – johnc