我有暴露事件的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