在从子类引发事件时创建通用事件处理程序引发方法

时间:2012-09-29 06:16:58

标签: asp.net events generics event-handling

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

    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);

这是正确的吗?

0 个答案:

没有答案