可能重复:
Is there an actual difference in the 2 different ways of attaching event handlers in C#?
我看到很多代码看起来像这样:
foo.Drop += new DragEventHandler(fooHandler);
但在过去,我总是这样做:
foo.Drop += fooHandler;
这两种语法之间有区别吗?如果是这样,那么做到这一点有什么好处吗?
答案 0 :(得分:3)
第二个是第一个的简写;他们会编译成同意的IL。
然而,第二种语法是C#2.0的新内容; C#1仅支持第一个。
答案 1 :(得分:2)
它们都会产生相同的IL。
因此,在回答您的问题时,不 - 使用较长版本没有任何好处。
答案 2 :(得分:0)
没有区别,因为.Net 2你可以使用所谓的方法组转换,它允许你直接将方法名称注册到事件而不需要委托对象
答案 3 :(得分:0)
它们是相同的,但在第二个示例中,编译器使用方法组转换为您推断委托类型。句法糖......