EventHandler<EventArgsX>
EventArgs から継承する型 (EventArgs1 と呼びます) と、EventArgs1 から継承するさらに多くのクラス (これらをまとめて EventArgsX と呼びます) がある場合、実行時に 型であるイベントの束これらのイベントのいずれかの EventInfo が渡されました。EventArgs1 型 (例: MyEventHandler(object sender, EventArgs1 e)
) の 2 番目の引数を期待するイベント ハンドラーを追加したいのですが、どうすればよいですか?
イベントがタイプの場合、EventHandler<EventArgs1>
私はこれを行うだけです:
eventInfo.AddEventHandler(this, new EventHandler<EventArgs1>(MyEventHandler));
しかし、これはイベントのタイプが である場合に例外をスローEventHandler<EventArgsX>
します。コンパイル時に EventArgsX が何であるかがわからないため、コンパイル時にEventHandler<EventArgsX>
ハンドラーを追加していたイベントがわかっている場合は、これを単純に新しくすることはできません。完全に受け入れられます:
MyEvent += MyEventHandler
しかし、実行時にこれを行う方法がわかりません。助言がありますか?