Mam następujący kod mocującą obsługi zdarzenia:Wyrejestrowanie wyrażenie lambda z imprezy C#
this.btnOK.Click += (s,e) => { MessageBox.Show("test"); };
mogę wypisać że wyrażenia lambda z odbytu?
Mam następujący kod mocującą obsługi zdarzenia:Wyrejestrowanie wyrażenie lambda z imprezy C#
this.btnOK.Click += (s,e) => { MessageBox.Show("test"); };
mogę wypisać że wyrażenia lambda z odbytu?
Dlaczego nie tylko zapisać przypisanego lambda?
EventHandler lambda = (s,e) => { MessageBox.Show("test"); };
...
this.btnOK.Click += lambda;
...
this.btnOK.Click -= lambda;
Ugh, nic gorszego niż naciśnięcie klawisza Enter przez pomyłkę. –
można zrobić:
this.btnOK.Click = null;
Boom ze społeczności :) –
Ale to spowodowałoby, że wszystkie "subskrybowane zdarzenia" pójdą do drenażu –
@nowhewhomustnotbenamed., Może to spowodować tylko błąd kompilatora. –
Nie możesz un-assign that event
ponieważ jest to anonymous method
.
Podaj nazwę i możesz zrezygnować z subskrypcji.
@downvoter: proszę o komentarz? –
Nie można anulować subskrypcji funkcji anonimowej, ponieważ jest ona anonimowa i nie można uzyskać do niej dostępu. Możliwe rozwiązanie znajdziesz na http://stackoverflow.com/questions/9745280/how-to-unsubscribe-an-anonymous-function-in-dispose-method-of-a-class. Nie możesz się wypisać annoy –