删除匿名事件处理程序 [重复]
Posted
技术标签:
【中文标题】删除匿名事件处理程序 [重复]【英文标题】:Removing anonymous event handlers [duplicate] 【发布时间】:2011-09-21 13:30:41 【问题描述】:可能重复:C#: How to remove a lambda event handler
是否可以删除作为匿名函数附加的事件处理程序?假设我有一个活动,我以这种方式订阅它:
TestClass classs = new TestClass ();
classs.myCustomEvent += (a,b) => Console.Write(""); ;
是否可以使用 -= 以某种方式删除此事件处理程序?
【问题讨论】:
【参考方案1】:可以,但是需要先存到局部变量中:
MyDelegate handler = (a, b) => Console.Write(""); ;
class.myCustomEvent += handler;
class.myCustomEvent -= handler;
【讨论】:
不知道为什么这被否决了... +1,这是一个正确的答案。除了关于“本地”变量的部分:在大多数情况下,您需要将其存储在更长寿的位置...以上是关于删除匿名事件处理程序 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用 lambda 表达式时删除附加的事件处理程序 [重复]