Je suis en train de résoudre un problème de gestion d'un événement de souris dans une classe de base. Étant donné que les points d'arrêt ne fonctionnent pas vraiment bien pour le dépannage des événements de la souris, je souhaite ajouter une sortie de débogage dans le gestionnaire d'événements. Cependant, il est important pour moi d'inclure le nom de la classe dérivée réelle dans les informations de déboguage car le code de gestion des événements de la classe de base est partagé par un grand nombre de classes dérivées et seules certaines présentent le problème. J'ai essayé d'utiliser this.GetType().Name
mais cela retourne simplement le type de la classe base
. Je peux, bien sûr, commencer à modifier les classes et, par exemple, passer la classe dérivée type
au constructeur de la classe de base où il peut le stocker, mais c'est beaucoup de changements pour ce qui est évidemment un besoin temporaire. Existe-t-il un moyen simple d'obtenir le type de la classe dérivée à partir de la classe de base?C# Obtenir le nom du type dérivé à partir de la classe de base interne Classe
18
A
Répondre
31
this.GetType().Name
devrait fonctionner. Vous ne pouvez pas avoir de classe dérivée.
8
this.GetType().Name
reviennent toujours le nom du type exécution en cours, pas le type que le code qu'il a été écrit en vous pouvez émuler des points d'arrêt si, en utilisant Debugger.Break()
de manière conditionnelle.
if (this.GetType().Name == "Problematic type")
System.Diagnostics.Debugger.Break();
1
Lorsque vous soulevez un assurez-vous de transmettre l'expéditeur réel à la propriété de l'expéditeur. L'objet émetteur de la classe d'écoute doit pointer correctement vers la classe enfant qui a déclenché l'événement.
Questions connexes
- 1. A partir de la classe de base en C#, obtenez le type dérivé?
- 2. Comment obtenir le nom de la classe
- 3. Récupère le nom de classe de la classe étendue
- 4. Utilisation du membre statique d'une classe sur un type dérivé?
- 5. C# - Comment accéder à la classe interne de l'assemblage externe
- 6. Classe de base d'accès fn avec la même signature que l'objet de classe dérivé
- 7. Comment puis-je obtenir dynamiquement une instance d'une classe de base à partir d'une classe héritée?
- 8. python Nom du fichier de la classe du module MySQL
- 9. Obtenir le nom complet à partir de l'authentification Windows dans la classe BLL ASP.Net
- 10. Nom de la classe à partir de son objet
- 11. Comment obtenir une référence à la classe englobante d'une classe interne anonyme en Java?
- 12. Comment obtenir le nom d'une classe Ruby?
- 13. Comment accéder à la classe interne à l'aide de Reflection
- 14. Comment obtenir le nom d'une propriété de classe?
- 15. Comment définir un champ interne de classe de base
- 16. C# question sur GetType de la classe
- 17. Surcharge de l'opérateur C++ - diffusion à partir de la classe
- 18. C++ - clonage classe de base
- 19. java - IO sur la classe interne
- 20. Vérifier le nom de la classe
- 21. Spécification du type de retour d'une méthode abstraite d'une classe de base selon une sous classe
- 22. Comment obtenir la taille interne/client d'une sous-classe NSView?
- 23. Accès à une propriété de classe dérivée de la classe de base en C#
- 24. Comment transférer une classe interne?
- 25. instanciation une classe interne
- 26. Méthode Classe interne locale
- 27. obtenir le nom de classe variable de type int statique avec typeid (* cela) .name pour sa propre définition - C++
- 28. Utilisation de "Base" dans un nom de classe
- 29. Obtenir le nom d'une classe enfant en PHP
- 30. Obtenir l'itinéraire pour la classe de base de classe STI dans Rails