5

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

4

1 回答 1

10

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

obj.add_SomeEvent(handler);

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

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

使用委托,它有效地使用Delegate.Combine

handler = Delegate.Combine(handler, value);

EventHandlerList一个关键对象:

Events.AddHandler(EventKey, value);
于 2009-08-03T21:07:59.473 回答