我正在尝试创建我所认为的翻译类,以便我的程序可以与各种目标平台对话。每个平台都将由抽象类的单独实现来处理。为了简单起见,我已经削减了一些内容。
我有一个抽象类,有几个抽象方法:
abstract class ControllerBase
{
public abstract bool EnableDTMFDetection(string CallID, Party Party);
public abstract bool DisableDTMFDetection(string CallID, Party Party);
}
随后是一个从 ControllerBase 派生的类,并完全实现这些方法:
class PlatformOne : ControllerBase
{
public override bool EnableDTMFDetection(string CallID, Party Party)
{
// Do Stuff
return true;
}
public override bool DisableDTMFDetection(string CallID, Party Party)
{
// Do Stuff
return true;
}
}
到目前为止,一切都很好。对于 PlatformOne,我被迫定义每个方法,规定如何将传出消息发送到目标平台。
是即将到来的事件吸引了我。我需要能够从派生类中引发事件。当我将以下内容添加到控制器库时:
public delegate void MyEventHandler(object sender, EventArgs e);
public event MyEventHandler MyEvent;
它编译得很好,但我无法在没有错误的情况下从派生类中引发事件:“事件 'ControllerBase.MyEvent' 只能出现在 += 或 -= 的左侧(除非在输入“ControllerBase”)”
因此,a) 如何从派生类中引发事件,b) 任何人都可以建议一种机制,用于强制从派生类中连接指定事件(抽象函数或接口方法)。谢谢您的来电:)