继承基类事件

时间:2018-09-28 14:29:24

标签: c# inheritance event-handling derived-class base-class

我不知道是否对此有答案-我似乎找不到示例,因此也许我的术语不正确,或者也许不应该这样做,所以请原谅我。

我有一个带有一些事件和事件处理代码的对象的基类-基本上,这是使用FileSystemWatcher的样板过程。

在我的基地中,我整理了所有代码,以处理特定事件和错误处理。

问题是我希望能够控制基类应订阅的文件系统监视程序的哪些事件(正在考虑包括所有事件并使用切换用例来添加它们),但随后我需要在其中处理它们派生类而不是基类-因为我想要派生类具有特定的功能。如果可能的话,我不希望在基类中实现所有事件-因为当这些派生类中的4到8个正在运行时,我不希望产生开销。我想做的一件事是强制派生类订阅事件。

我从DCcoder知道,抽象是强制方法“必须继承”的关键,但是我对强制订阅感到茫然。

    public abstract class myBase
    {

        public event EventHandler<string> MessageAvailable;

        protected void OnMessageAvailable(string e)
        {
             MessageAvailable?.Invoke(this, e);

        }


       public event EventHandler<Exception> Error;

        protected virtual void OnError(Exception e)
        {
            Error?.Invoke(this, e);
        }

    }


public myderivedclass : myBase
{

      this.Message += IfYouwantTo;
      this.Error += REQUIRE_THIS_SUBSCRIPTION_HandleErrorHere;

}

DerivedClass实际上需要处理事件,所以我要在基类中创建一个空的事件处理程序,并使用一个接口强制我的派生类重写基类,或者不是强制该派生类实现该处理程序? / p>

还是我要解决所有这些错误?

任何例子都值得赞赏..

0 个答案:

没有答案