どういうわけか、派生クラスに常にオーバーライドされたメソッドベースを呼び出すように強制できますか?
public class BaseClass
{
public virtual void Update()
{
if(condition)
{
throw new Exception("..."); // Prevent derived method to be called
}
}
}
そして、派生クラスで:
public override void Update()
{
base.Update(); // Forced call
// Do any work
}
非仮想Update()だけでなく、保護された仮想UpdateEx()を使用するための提案を検索して見つけました。あまりきれいに感じられないだけですが、もっと良い方法はありませんか?
質問があればいいのですが、英語が下手でごめんなさい。