我有以下类结构,并且在B.OnShow()我不想要的某些类中有很多类从B派生的类C,但是我想从C执行A.OnShow()有什么技巧吗?
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();
}
}
最佳答案
不要让C从B扩展而来,而是创建一个新的“ X”类,它从A扩展,并且具有您想要B和C都在B中的部分,然后让C和B从“ X”扩展。然后,B中将只包含您想要B特定的位(有点抽象,但我认为这很有意义)。
一般来说,如果您尝试跳过父方法,那么您做错了什么。