我知道很多人都问“我怎么退订下面的”退订LAMBDA事件处理程序**用封**
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);
如果有我已经设置此处理一些机会/所有对象的这个循环?有没有办法取消订阅他们?
我敢肯定,我可以使用反射和完全清除处理,但有一个更清洁的方式?
GRRRR。那么可能重新设计我的设计并在发布会中传递发件人? - 行动' - 非常感谢Jon。 –
2011-03-11 15:43:59
约翰是谁? :) – jgauffin 2011-03-11 15:44:33
@Adam:您还没有的上下文不够清晰的休息对我们说,你是否会想改变设计。我不知道如何通过一个发件人会帮助,虽然... – 2011-03-11 15:46:55