5

イベントにメソッドを追加するための+=演算子に相当する生のコードを誰かに教えてもらえないかと思っていました。技術的な観点から、どのように機能するのか興味があります。

4

1 に答える 1

10

は、「add」と「remove」を含む一連のeventメソッドを定義します(プロパティが「get」と「set」を定義するのと同じ方法で)。これは効果的に:

obj.add_SomeEvent(handler);

内部的には、イベントは何でもできます。2つの一般的なケースがあります:

  • デリゲートフィールドを含むイベント(「フィールドのような」イベントを含む)
  • EventHandlerList実装

デリゲートを使用すると、以下を効果的に使用しますDelegate.Combine

handler = Delegate.Combine(handler, value);

重要EventHandlerListなオブジェクトがあります:

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