イベント クラスに、すべてのイベントで使用する一般的なイベント発生メソッドがあります。
protected virtual void RaiseEvent<T>(EventHandler<T> eventToRaise, T eventArgs) where T : EventArgs
{
if (eventToRaise != null)
{
eventToRaise(this, eventArgs);
}
}
しかし、サブクラスからこのメソッドを呼び出そうとすると、 += または -= 式の左側だけでイベントを使用できるというエラーが発生します。これを機能させる方法はありますか?
更新: 1 つのアイデアは、列挙型を使用することです。最初にイベント名の列挙を定義します。次に、各列挙値を対応するイベントにマップする辞書を追加します。最後に、メソッドでイベントを取得し、パラメーターに基づいてイベントを発生させます。しかし、辞書がどうあるべきかわかりませんか?
public enum Events {Insert , Update , Delete};
dictionary<Events,EventHandler<T>> EventsDic = new dictionary<Events,EventHandler<T>>;
EventsDic.Add(Events.Insert,this.Insert);
これは正しいです ?