这有什么区别:
this.btnOk.Click += new System.EventHandler(this.btnOK_Click);
还有这个?
this.btnOk.Click += this.btnOK_Click;
他们都工作。前者是您使用代码片段时 Visual Studio 的默认设置。但似乎它只是在宣传多余的措辞,还是我遗漏了什么?
没有不同。省略委托实例化只是语法糖;C# 编译器将在后台为您生成委托实例化。
在 C# 3.0 及更高版本中,这没有区别。在 C# 3.0 之前,由于编译器限制需要 EventHandler,但随着 C# 3.0 的出现,除非您想非常明确,否则首选第二种形式。
我相信自 3.0 以来的 C# 已隐式添加了委托处理程序。但是,它可以帮助更明确,尤其是当有多种可能的委托类型时。
“+= Delegate_Name”是一种语法糖。编译器将为您创建新的包装器。