Hier j'ai pensé que ce serait bien d'implémenter mon propre Trigger dans une application WPF. J'ai créé une classe MyTrigger qui a hérité de TriggerBase. TriggerBase est une classe abstraite publique. Donc, l'héritage n'est pas un problème. Mais les constructeurs à l'intérieur de cette classe sont marqués internes. Le compilateur renvoie une erreur car le constructeur n'est pas valide. Pourquoi quelqu'un crée-t-il une classe publique mais marque les constructeurs comme internes?constructeur interne
Répondre
Si vous voulez que la classe soit visible, mais permettez seulement qu'elle soit sous-classée dans votre propre assemblage. Les sous-classes peuvent avoir elles-mêmes des membres du public - ou peuvent être consultées avec une usine.
Je ne peux pas dire si c'est une bonne décision de conception pour TriggerBase dans WPF, mais c'est au moins raisonnable dans certaines situations.
Une raison que je pourrais penser est que la création réelle de nouvelles instances serait traitée par une autre classe publique dans le même assemblage. Cela forcerait que vous créez l'instance à travers cette autre classe - éventuellement une sorte d'implémentation de modèle d'usine.
Il est public car il est utilisé comme classe de base pour les déclencheurs fournis avec WPF (Trigger, MultiTrigger, EventTrigger, DataTrigger, etc.). Ce n'était pas public alors vous ne seriez pas capable de marquer ces classes comme publiques.
Les constructeurs sont internes car ils ne vous permettent pas de l'utiliser vous-même. Je suppose que vous êtes supposé dériver de l'une des classes mentionnées ci-dessus.
- 1. Le passage d'un attribut dynamique à un constructeur interne
- 2. Utilisation des attributs personnalisés du constructeur interne - C#
- 3. Existe-t-il un moyen de dériver d'une classe avec un constructeur interne?
- 4. Surcharge "base" constructeur ou "this" constructeur?
- 5. Copier Constructeur
- 6. F # Constructeur
- 7. django jointure interne requête
- 8. instanciation une classe interne
- 9. MySQL jointure interne question
- 10. Méthode Classe interne locale
- 11. Firebug message d'erreur interne
- 12. SQL jointure interne syntaxe
- 13. -moz-focus-interne
- 14. Création automatique du constructeur, selon la classe parent constructeur (C++)
- 15. C++ Débutant question: Constructeur
- 16. ASP.NET: ICollection, constructeur introuvable?
- 17. Syntaxe du constructeur C++
- 18. asp.net mvc - constructeur statique
- 19. Paramètre constructeur de printemps?
- 20. problème constructeur en java
- 21. Règles d'accès du constructeur
- 22. cacher constructeur sur struct
- 23. Constructeur pour la classe
- 24. Constructeur de tables lua
- 25. constructeur ne fonctionne pas
- 26. Polymorphisme du constructeur Aide
- 27. Constructeur dans wcf
- 28. Injection du constructeur
- 29. problème constructeur de C
- 30. Java: constructeur Hériter