这有什么区别:
this.btnOk.Click += new System.EventHandler(this.btnOK_Click);
这个?
this.btnOk.Click += this.btnOK_Click;
他们都工作。前者是Visual Studio在使用代码段时默认使用的内容。但它似乎只是广告额外的措辞,或者我错过了什么?
答案 0 :(得分:10)
没有区别。省略委托实例化只是语法糖果; C#编译器将为您生成代理实例化。
答案 1 :(得分:4)
在C#3.0及更高版本中,这没什么区别。在C#3.0之前由于编译器限制需要EventHandlers,但随着C#3.0的出现,除非你想要非常明确,否则第二种形式是首选。
答案 2 :(得分:1)
我相信C#3.0以来隐含地添加了委托处理程序。但是,它可以帮助更明确,尤其是当存在多种可能的委托类型时。
答案 3 :(得分:1)
“+ = Delegate_Name”是一种语法糖。编译器将为您创建新的包装器。