可能重复:
用新处理程序附加Eventhandler与直接分配
使用+= new(...)
将回调分配给按钮的Click事件与仅使用+=
有什么区别?为了清晰起见,下面是每个的样本:
Button b = new Button();
b.Click += new System.EventHandler(button_Click);
b.Click += button_Click;
第一个是否创建了方法button_Click
的新实例,而第二个始终使用this中定义的实例?
第二个是第一个的短手,所以两者都将创建事件处理程序并将其添加到Click
中。
下面是"C#in Depth"中关于事件的章节中的一个很好的解释。
没有区别。
你也可以…
b.Click += (e, sender) =>{
// do something here
};
这三者都是相同的,即将一个函数分配给一个代理。