私は次のコードを持っています:
class ClassA
{
public virtual void DoSomething()
{
DoSomething(1); // when called from ClassB, it calls DoSomething from ClassA with an infinite recursion
}
public virtual void DoSomething(int someInt)
{
// do something
}
}
class ClassB : ClassA
{
public override void DoSomething()
{
DoSomething(1);
}
public override void DoSomething(int someInt)
{
base.DoSomething(someInt);
// do something
}
}
class Program
{
void someMethod()
{
ClassB instance = new ClassB();
instance.DoSomething(); // stack overflow caused by infinite recursion
}
}
私の問題は、呼び出すときにClassB.DoSomething();
、base.DoSomething(someInt);
ClassBが派生する親クラスが、オーバーライドされたメソッドではなく、ClassAのメソッドを呼び出すようにしたいということです。
繰り返されるコードをコピー/貼り付けせずに、これをクリーンな方法で行う方法はありますか?