2016-04-09 9 views
2

私のコードの安全機構のため、この質問をしたいと思います。 これは役に立たないように思えるかもしれませんが、すでに私はデバッグに多くの時間を浪費していました。基本クラス関数を自動的に起動

public class AnimalClass 
{ 
    virtual void Mod{} 
    virtual void UpdateSomeValues{} 
} 
public class CatClass : AnimalClass 
{ 
    override void Mod{} 
    override void UpdateSomeValues{} 
} 

自動的に(CatMod機能から手動で呼び出すことなく)■Mod関数と呼ばれるCatCatはいつでもS UpdateSomeValues機能」を起動するにはC#で方法はありますか?

可能であれば、すべての派生クラスで同じにしますか?その派生クラスで

public class AnimalClass 
{ 
    public void Mod() 
    { 
     // do stuff 
     ModImpl(); 
    } 
    protected virtual ModImpl() {} 
} 

:あなたはクラスがオーバーライドし、必要なすべての処理が完了したら、そこに公共の1本の電話をかけることができます導出方法を保護し、別のものを導入することによって、その問題を解決することができ

答えて

2

号何らかの余分な処理をしたい場合はModImpl()を実装し、Modを呼び出すと、まだ// do stuffが発生していると確信しています。

+0

答えをありがとう。私が思ったように、ベースクラスでそれを行う方法はありません。 –