gpt4 book ai didi

c# - 取消订阅 Lambda 事件处理程序 **关闭**

转载 作者:太空狗 更新时间:2023-10-29 22:28:33 26 4
gpt4 key购买 nike

我知道很多人都问过“如何取消订阅以下内容”的问题

myButton.Click += (s, e) => MessageBox.Show("Hello World!");

有了明显的答案

EventHandler HelloWorld = delegate { MessageBox.Show("Hello World!"); };
myButton.Click -= HelloWorld;
myButton.Click += HelloWorld;

但是我使用 lambda 来创建一个闭包呢?如果我的对象有一个名为 AssessmentRationChanged 的事件,类型为 Action,我会这样连接它:

foreach (MassFMVUpdateDTO dto in CurrentProperties)
dto.AssessmentRationChanged += () => setCellColorBasedOnAssessmentRatioValue(dto);

如果我已经为这个循环中的一些/所有对象设置了这个处理程序怎么办?有没有办法取消订阅?

我确定我可以使用反射并完全清除处理程序,但是有没有更简洁的方法?

最佳答案

不,基本上,您必须存储对委托(delegate)的引用。

记住您以后想要取消订阅的所有内容。

关于c# - 取消订阅 Lambda 事件处理程序 **关闭**,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5274987/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com