これはエラーの「状況」ですか?その場合は、例外をスローするようにし、オーバーライド内で例外をキャッチしないでください。
エラー状況ではない場合、戻り値の型を使用することは前進の方法のように思えますが、それはあなたのコンテキストには適していない可能性があります.あなたが何を達成しようとしているのか私たちは本当に知りません.
もう 1 つのオプションは、テンプレート メソッド patternを使用することです。
public abstract class FooBase
{
public void DoSomething()
{
DoUnconditionalActions();
if (someCondition)
{
DoConditionalAction();
}
}
protected abstract void DoConditionalAction();
}
基本クラスを抽象化したくない場合は、基本クラスでは何もせず、必要に応じて派生クラスでオーバーライドされる保護された仮想メソッドにすることができます。ここでは仮想でDoSomething
はないことに注意してください。
これらのオプションのいずれも適切でないと思われる場合は、何を達成しようとしているのかについて、より具体的な情報を提供する必要があります。