2009-11-25 10 views
0

J'ai une clase de base « AsyncHandlerBase »peut une classe de base dire quel élément hérite il

public class CameraAlertsQuery : AsyncHandlerBase 

la classe de base est héritée par plusieurs pages. est-il possible dans la classe de base d'exécuter du code spécifique lorsqu'une classe particulière en hérite? Je voudrais avoir ce code particulier exécuté sur la page elle-même, mais ce n'est pas possible dans ce cas.

Répondre

2

C'est faisable mais je le déconseille fortement. Construire ce type de connaissance dans la classe de base rend difficile à maintenir.

Ce que vous pouvez faire à la place est de créer un résumé (ou virtuel vide) méthode dans la classe de base, de substitution dans l'enfant

0

Je hésitais à écrire, parce que cela est certainement va introduire une « odeur de code » Cela va vous tourmenter un jour. Mais, si vous devez vraiment, vous pouvez vérifier le type de l'objet appelant à partir de votre méthode de classe de base:

if (this.GetType().Equals(typeof(DerivedClass))) 
{ 
    .... 
} 
+0

Merci Dave, cela a fonctionné comme je le voulais. – Ben