我知道很多人都問「我怎麼退訂下面的」退訂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