我有暴露事件的OnClick(對象發件人,EventArgs的)一個視窗形式按鈕。 在我的應用程序可以通過使用經典的事件處理的C#技術處理這個問題:
// Button Creation
Button button = new Button();
button.Click += MyEventHandler;
然後Windows窗體問我有以下簽名的處理程序:
public void MyEventHandler(object sender, EventArgs e) { }
假設我想使用lambda表達式要做到這一點,我可以使用以下語法:
button.Click += (sender, args) =>
{
// execute the code
};
這樣做的缺點是,我不能從Lambda表達式退訂。
問題
我想要做的是有一個實用工具類,讓我來處理任何Click事件加上使用額外的行動作爲參數。所以我想寫這樣的東西:
button.Click += MyUtility.Click(()
=> {
// the custom code the Click event will execute
})
我可以做到這一點嗎?
當你已經有解決方案時,爲什麼要經歷所有這些?如果您需要取消訂閱,請不要使用lambda表達式,很簡單。 – 2011-01-05 20:12:02
你根本沒有回答這個問題... – Raffaeu 2011-01-05 20:14:16