1
抽象Work()メソッドを使用してジョブベースクラスを取得しました。これは、継承されたクラスでオーバーライド/実装されます。すべての派生クラスに繰り返し条件付きチェックを適用する
達成したいのは、すべての派生クラスにアボート条件を適用することです。テンプレートのメソッドパターンは私の抽象的なWork()クラスで発生するようにこのチェックが必要なので、ここで私を助けてくれないようです。
この問題を回避するには、ワーク()仮想を作っていないことになるが、その後、私はもはや(私が何をしたいのか)、それの実装を強制しています:
public abstract class First
{
protected virtual void Work()
{
//do stuff
}
}
public class Second : First
{
protected override void Work()
{
base.Work();
}
}
は私の目標を達成する方法はありますか?
それは伝えるのは難しいです:派生クラスでのチェックが成功した時に何をすべきかの実際の実装を提供するだろうが仕事を中断可能性があり、この方法ですべてのチェックは、基本クラスの
Work
機能で実行されるであろうあなたは正確に何をしたいのですが、キャンセルチェックを行い、派生クラスに実装されている 'protected abstract void WorkInternal()'を呼び出す 'First'の' public void Work() 'はどうでしょうか? – Blorgbeard