删除匿名事件处理程序

mag*_*eto 11 c# events event-handling

可能重复:
C#:如何删除lambda事件处理程序

是否可以删除作为匿名函数附加的事件处理程序?假设我有一个事件,我以这种方式订阅它:

TestClass classs = new TestClass ();
classs.myCustomEvent +=  (a,b) => { Console.Write(""); };
Run Code Online (Sandbox Code Playgroud)

有可能以某种方式使用 - = ??删除此eventHandler

fpa*_*is2 24

这是可能的,但您需要先将其存储在局部变量中:

MyDelegate handler = (a, b) => { Console.Write(""); };
class.myCustomEvent += handler;
class.myCustomEvent -= handler;
Run Code Online (Sandbox Code Playgroud)

  • 不知道为什么这个被投票... +1,这是一个正确的答案.除了关于"本地"变量的部分:在大多数情况下,您需要将其存储在更长寿的位置...... (3认同)