使用事件类型构造函数的目的/区别是什么

hul*_*ist 5 c# events

在我可以找到的所有示例以及Visual Studio中自动生成的代码中,使用以下代码设置事件:

button1.Click += new System.EventHandler(this.button1_Click);
Run Code Online (Sandbox Code Playgroud)

但我也可以通过省略构造函数包装器在视觉上更清晰地编写它:

button1.Click += this.button1_Click;
Run Code Online (Sandbox Code Playgroud)

哪个也编译好.

这两者有什么区别?为什么第一个主要使用/首选?

Jon*_*eet 5

在C#2之前不支持第二种形式(从方法组到委托类型的隐式转换),因此在2005之前编写的任何教程等都将使用第一种形式.

此外,IIRC Visual Studio自动完成第一个表单.我个人更喜欢第二个.