可能是重复问题:
C#:如何删除Lambda事件处理程序
如果事件被附加为匿名函数,是否可以删除它?假设我有一个事件,并以以下方式订阅它:
TestClass classs = new TestClass ();
classs.myCustomEvent += (a,b) => { Console.Write(""); };
有没有可能使用 -= 的方式移除这个事件处理程序?
可能是重复问题:
C#:如何删除Lambda事件处理程序
如果事件被附加为匿名函数,是否可以删除它?假设我有一个事件,并以以下方式订阅它:
TestClass classs = new TestClass ();
classs.myCustomEvent += (a,b) => { Console.Write(""); };
有没有可能使用 -= 的方式移除这个事件处理程序?
这是可能的,但需要先将其存储在本地变量中:
MyDelegate handler = (a, b) => { Console.Write(""); };
class.myCustomEvent += handler;
class.myCustomEvent -= handler;