2016-04-09 17 views
2

Bu soruyu, kodum için bazı güvenlik mekanizmaları nedeniyle sormak istiyorum. Bu yararsız gibi görünebilir, ancak zaten hata ayıklama çok zaman kaybettirdi.Taban sınıfı işlevlerini otomatik olarak tetikleme

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

otomatik (Cat 'ın Mod işlevi elle aramak zorunda kalmadan) ler Mod fonksiyon denir Cat 'Cat zaman lar UpdateSomeValues fonksiyonu' ateşlemek C# bir yolu var mı?

Ve mümkünse, tüm türetilmiş sınıflar için aynısını yapın?

cevap

2

Hayır türetilmiş sınıfları geçersiz kılabilirsiniz başka, korumalı yöntemi tanıştırarak bu sorunu çözmek ve bir zamanlar tüm gerekli işlem yapılır içine kamu bir arama yapabilir: o türetilmiş sınıfları ile

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

Daha fazla işlem yapmak istiyorlarsa ModImpl()'u uygular ve 'un Mod çağrıldığında hala olacağından eminsiniz.

+0

Cevabınız için teşekkürler. Sanırım Sanırım bunu temel sınıfta yapmanın bir yolu yoktur. –

İlgili konular