6

这有什么区别:

this.btnOk.Click += new System.EventHandler(this.btnOK_Click);

还有这个?

this.btnOk.Click += this.btnOK_Click;

他们都工作。前者是您使用代码片段时 Visual Studio 的默认设置。但似乎它只是在宣传多余的措辞,还是我遗漏了什么?

4

4 回答 4

10

没有不同。省略委托实例化只是语法糖;C# 编译器将在后台为您生成委托实例化。

于 2008-09-23T04:41:36.967 回答
4

在 C# 3.0 及更高版本中,这没有区别。在 C# 3.0 之前,由于编译器限制需要 EventHandler,但随着 C# 3.0 的出现,除非您想非常明确,否则首选第二种形式。

于 2008-09-23T04:41:58.917 回答
1

我相信自 3.0 以来的 C# 已隐式添加了委托处理程序。但是,它可以帮助更明确,尤其是当有多种可能的委托类型时。

于 2008-09-23T04:39:03.793 回答
1

“+= Delegate_Name”是一种语法糖。编译器将为您创建新的包装器。

于 2008-09-23T04:40:10.153 回答