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

本文关键字:lambda 表达式 取消 事件 | 更新日期: 2023-09-27 18:01:57

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

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

我可以从vent中取消订阅lambda表达式吗?

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

为什么不直接保存分配的lambda呢?

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

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

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

你可以这样做:

this.btnOK.Click = null;