我应该创建一个新的代理实例吗?

时间:2010-08-27 15:37:29

标签: c# delegates

这样做有什么意义......

this.myButton.Click += new EventHandler(this.myButton_Clicked);

......对比这个?

this.myButton.Click += this.myButton_Clicked;

我怀疑编译器在第二个例子中为我创建了一个新实例。我确定这是一个新手问题,但谷歌没有发现任何问题。谁能给我一些见解?

2 个答案:

答案 0 :(得分:9)

第二种语法是C#2.0中引入的第一种语法的快捷方式。

http://www.developer.com/net/csharp/article.php/3103031/Working-with-Delegates-Made-Easier-with-C-20.htm

答案 1 :(得分:1)

是的,第二个版本使编译器创建一个隐式委托,就像你可以指定this.MyMethod而不是new Action(this.MyMethod)new Action(() => this.MyMethod())一样。