2009-08-03 13 views
5

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

答えて

10

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

obj.add_SomeEvent(handler); 

内部的にイベントは何でもできます。 2一般的なケースがあります。( "フィールド様" イベントを含む)デリゲートフィールドと

  • イベントデリゲートで
  • EventHandlerList実装

は、それが効果的にDelegate.Combineを使用しています。

handler = Delegate.Combine(handler, value); 

EventHandlerListには、キーオブジェクトがあります。

Events.AddHandler(EventKey, value); 
関連する問題