代码之家  ›  专栏  ›  技术社区  ›  HaxElit

使用新处理程序附加事件处理程序vs直接分配它

  •  10
  • HaxElit  · 技术社区  · 14 年前

    创建新的事件处理程序与将其直接分配给事件相比,实际的区别、优点和缺点是什么?

    _gMonitor.CollectionChanged += new NotifyCollectionChangedEventHandler(OnCollectionChanged);
    

    VS

    _gMonitor.CollectionChanged += OnCollectionChanged;
    
    2 回复  |  直到 13 年前
        1
  •  10
  •   Marc Gravell    14 年前

    在C 2.0及以上版本中,它们是相同的。在C 1.2(与.NET 1.1一起提供的)中,只有第一个语法(与 new )编译;-P

    第二种语法保存按键,但vs intellisense通常建议使用第一种语法。最终,这几乎没有什么区别。我通常在在线代码示例中使用第二种语法,这仅仅是因为它避免超过(窄)列宽!

        2
  •  3
  •   ChrisF    14 年前

    编译器有足够的信息使 new EventHandler 有效地 syntactic sugar .

    它知道您正在将事件处理程序附加到事件,仅作为 += -= 在这一点上是有效的,所以你不需要告诉它该做什么。