我的事件类中有一个通用的事件提升方法,可用于所有事件
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);
这是正确的吗?