我现在的情况是这样的:
我将这两个代表放在一个单独的文件中:
public delegate void EventHandler(Object obj, EventArgs e);
public delegate void OtherEventHandler(Object obj, OtherEventArgs e);
我有一个Event
看起来像这样的类:
class Event {
EventHandler _handler;
public Event(EventHandler handler) {
_handler = handler;
}
}
我有另一个以Event
这种方式继承的类:
class OtherEvent : Event {
OtherEventHandler _handler;
public OtherEvent (OtherEventHandler handler) : base(handler) {
_handler = handler;
}
}
这就是问题发生的地方。错误在于base(handler)
. 因为handler
inOtherEvent
是一个OtherEventHandler
,基类不能接受它;基类只接受EventHandler
.
我的意图是拥有一个“通用”委托,这样当OtherEvent
从 继承方法时Event
,OtherEvent
仍然可以灵活地使用其自己的委托类型,并使用与其父handler
类字段不同的参数。
我能做些什么来实现我的意图?