创建新事件处理程序的实际差异,优点和缺点是什么,直接将其分配给事件?
_gMonitor.CollectionChanged += new NotifyCollectionChangedEventHandler(OnCollectionChanged);
vs
_gMonitor.CollectionChanged += OnCollectionChanged;
答案 0 :(得分:10)
在C#2.0及以上版本中,它们完全相同。在C#1.2(.NET 1.1附带的那个)中,只有第一个语法(带new
)编译;-p
第二种语法保存按键,但VS intellisense通常会建议第一种。最终,它几乎没有什么区别。我通常在网上使用代码样本中的第二种语法,因为它避免超过(窄)列宽!
答案 1 :(得分:3)
编译器有足够的信息可以使new EventHandler
有效syntactic sugar。
它知道您正在为事件附加事件处理程序,因为此时只有+=
和-=
有效,所以您不需要告诉它该做什么。