consente di dire che abbiamo un delegatoCome rimuovere tutti eventhandler
public delegate void MyEventHandler(string x);
e un gestore di eventi
public event MyEventHandler Something;
aggiungiamo più eventi ..
for(int x = 0; x <10; x++)
{
this.Something += HandleSomething;
}
La mia domanda è .. come si rimuovono tutti i metodi dall'eventhandler presumendo che uno non sappia che è stato aggiunto 10 volte (o più o meno)?
Ho sempre pensato che dovessimo rimuoverli manualmente, ma sorprendentemente .. questo funziona .. Ho fatto qualcosa di simile la risposta accettata su http://stackoverflow.com/questions/447821/how-do-i- annullare l'iscrizione-tutti-gestori-da-un-evento-per-un-particolare-classe-in-c – Eminem
Mi sembra che questa pratica valga la pena fare all'interno di un metodo Dispose (bool) di classe, ma io non vedere i riferimenti a questa pratica ovunque. Il mio suono pensante? –
Penso che potrebbe essere una buona idea, ma dovresti fare attenzione a non gonfiare il tuo codice, il che potrebbe finire per portare a bug invece di risolverli. Ho un metodo in cui passo il registro e annullo la registrazione e chiamando 'Dispose' esegue tutte le azioni di annullamento della registrazione. @PieterGeerkens –