Visual Studio - 为什么在 .Net 中"new EventHandler(Handler)"?



在VisualStudio 2008和2010中,当我键入例如时

this.Activated += 

然后按Tab键,VisualStudio自动补充行:

this.Activated += new EventHandler(MainWindow_Activated);

但更简单、更简洁的版本也适用:

this.Activated += MainWindow_Activated;

这些线路等效吗?new EventHandler可能是有原因的。。。

当您使用短版本时,C#的较新版本会推断出长版本。这意味着即使您编写的代码较少,它仍然可以编译到较长的版本。

Jon Skeet在他的Refcard:中写道

C#2

C#2介绍了两个重要的改进我们可以创造的方式委托实例。

  1. 你不再需要新的委托类型部分:

StringPredicate predicate = fveCharacters.Filter;

这意味着从C#2开始,您可以使用上面的内容而不是

StringPredicate predicate = new StringPredicate(fveCharacters.Filter);

所以我猜VisualStudio把它放在那里是为了向后兼容性。

相关内容

  • 没有找到相关文章

最新更新