如何跳过立即基类覆盖函数

Job*_*Joy 3 c# oop

我有以下类结构,并且有很多类,比如C派生自B,在B.OnShow()中我不想要的一些类中,但是我希望A.OnShow()从C执行任何技巧?

abstract class A
{
   protected virtual void OnShow()
   {
        //some code
        base.OnShow();
   }
}

class B : A
{
    protected override void OnShow()
    {
      //some other code
      base.OnShow();
    }
}

class C : B
{
   protected override void OnShow()
   {
      //some other code
      base.OnShow();
   }
}
Run Code Online (Sandbox Code Playgroud)

Tof*_*eer 5

不要从B扩展C,而是创建一个从A扩展的新类"X",并且具有B和C所需的当前B部分,然后使C和B从"X"扩展.然后B将只有你想要的B中的位(具体抽象,但我觉得这很有意义).

一般来说,如果你试图跳过父方法,那么你做错了.