我有以下类结构,并且有很多类,比如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)
不要从B扩展C,而是创建一个从A扩展的新类"X",并且具有B和C所需的当前B部分,然后使C和B从"X"扩展.然后B将只有你想要的B中的位(具体抽象,但我觉得这很有意义).
一般来说,如果你试图跳过父方法,那么你做错了.