从事件c#取消订阅lambda表达式

时间:2014-05-06 05:35:13

标签: c# .net c#-4.0 lambda

我有以下代码附加事件处理程序:

this.btnOK.Click += (s,e) => { MessageBox.Show("test");  };

我可以从通风口取消订阅lambda表达式吗?

3 个答案:

答案 0 :(得分:5)

为什么不只是 保存 指定的lambda?

 EventHandler lambda = (s,e) => { MessageBox.Show("test");  };

 ...

 this.btnOK.Click += lambda;

 ... 

 this.btnOK.Click -= lambda;

答案 1 :(得分:-2)

您不能un-assign that event,因为它是anonymous method

给它起个名字,你就可以取消订阅了。

答案 2 :(得分:-3)

你可以这样做:

this.btnOK.Click = null;