1

我的事件类中有一个通用的事件引发方法,可用于所有事件

    protected virtual void RaiseEvent<T>(EventHandler<T> eventToRaise, T eventArgs) where T : EventArgs
    {
        if (eventToRaise != null)
        {
            eventToRaise(this, eventArgs);
        }
    }

但是当我尝试从子类调用此方法时,我收到一个错误,即事件只能在 += 或 -= 表达式的左侧使用。有什么办法可以使这项工作?

更新:一个想法是使用枚举。首先定义一个事件名称的枚举。然后添加一个字典,将每个枚举值映射到其对应的事件。最后在方法中获取事件并根据参数是什么来引发它。但我不确定字典应该如何?

 public enum Events {Insert , Update , Delete};

dictionary<Events,EventHandler<T>> EventsDic = new dictionary<Events,EventHandler<T>>;

EventsDic.Add(Events.Insert,this.Insert);

这个对吗 ?

4

0 回答 0