添加事件处理程序时,是否使用“new()”?

时间:2012-08-26 06:57:50

标签: c# event-handling new-operator

  

可能重复:
  Attaching Eventhandler with New Handler vs Directly assigning it

使用+= new(...)与仅+=分配回叫,比如按钮的点击事件有什么区别?以下是每个样本的清晰度:

Button b = new Button();
b.Click += new System.EventHandler(button_Click);
b.Click += button_Click;

第一个是否创建方法button_Click的新实例,而第二个总是使用 this 中定义的实例?

2 个答案:

答案 0 :(得分:7)

第二个是第一个的简写,因此两者都将创建事件处理程序并将其添加到Click

这是“C#in Depth”中关于事件的章节中的good explanation

答案 1 :(得分:2)

没有区别。

你也可以......

b.Click += (e, sender) =>{
 // do something here
};

这三个都是相同的,即为代表分配一个功能。