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

相当于+=事件赋值的代码

  •  5
  • Matt  · 技术社区  · 16 年前

    我想知道是否有人可以告诉我原始代码相当于+=操作符,用于向事件添加方法。我很好奇从技术角度看它是如何工作的。

    1 回复  |  直到 16 年前
        1
  •  10
  •   Marc Gravell    16 年前

    event 定义一组方法,包括“add”和“remove”(与属性定义“get”和“set”的方式相同)。这实际上是:

    obj.add_SomeEvent(handler);
    

    在内部,这件事可以做任何事情;有两种常见情况:

    • 带有委托字段的事件(包括“类似字段”的事件)
    • EventHandlerList 实现

    通过委托,它可以有效地使用 Delegate.Combine :

    handler = Delegate.Combine(handler, value);
    

    事件处理列表 有一个关键对象:

    Events.AddHandler(EventKey, value);