在VisualStudio 2008和2010中,当我键入例如时
this.Activated +=
然后按Tab键,VisualStudio自动补充行:
this.Activated += new EventHandler(MainWindow_Activated);
但更简单、更简洁的版本也适用:
this.Activated += MainWindow_Activated;
这些线路等效吗?new EventHandler
可能是有原因的。。。
当您使用短版本时,C#的较新版本会推断出长版本。这意味着即使您编写的代码较少,它仍然可以编译到较长的版本。
C#2
C#2介绍了两个重要的改进我们可以创造的方式委托实例。
- 你不再需要新的委托类型部分:
StringPredicate predicate = fveCharacters.Filter;
这意味着从C#2开始,您可以使用上面的内容而不是
StringPredicate predicate = new StringPredicate(fveCharacters.Filter);
所以我猜VisualStudio把它放在那里是为了向后兼容性。