Ayer pensé que sería bueno implementar mi propio disparador en una aplicación WPF. Creé una clase MyTrigger que heredó TriggerBase. TriggerBase es una clase abstracta pública. Entonces la herencia no es un problema. Pero los constructores dentro de esta clase están marcados como internos. El compilador arroja un error porque no es un constructor válido. ¿Por qué alguien crea una clase pública pero marca los constructores como internos?constructor interno
Respuesta
Si desea que la clase sea visible, pero solo permita que se subclassed dentro de su propio conjunto. Las subclases pueden tener constructores públicos, o se puede acceder a ellas con una fábrica.
No puedo comentar si esa es una buena decisión de diseño para TriggerBase en WPF, pero al menos es razonable en algunas situaciones.
Una razón por la que podría pensar es que la creación real de nuevas instancias sería manejada por otra clase pública en el mismo ensamblado. Esto obligaría a crear la instancia a través de esta otra clase, posiblemente algún tipo de implementación de patrón de fábrica.
Es público porque se usa como una clase base para los desencadenantes que se envían con WPF (Trigger, MultiTrigger, EventTrigger, DataTrigger, etc.). Si no fuera público, entonces no podría marcar estas clases como públicas.
Los constructores son internos porque no tienen la intención de que usted lo use. Supongo que debes derivarte de una de las clases mencionadas anteriormente.
- 1. Burlando de un tipo con un constructor interno usando Moq
- 2. El constructor de recursos de Silverlight siempre regresa al interno
- 3. Mocking objeto instanciado interno
- 4. ¿Hay alguna manera de derivar de una clase con un constructor interno?
- 5. ¿Cómo obtengo VS2010 para generar Resources.Designer.cs con un constructor público en lugar de interno?
- 6. ¿Hay alguna manera de especificar la restricción T: new() pero con el constructor interno?
- 7. Externo interno estático C# con atributo InternalCall - ¿interno o externo?
- 8. jquery unwrap Interno
- 9. interno vs externo CSS
- 10. Interno de cadenas?
- 11. Clipping div contenido interno
- 12. Error interno del servidor
- 13. Error interno (javaClasses.cpp: 129)
- 14. constructor público y constructor estático
- 15. Constructor vacío o sin constructor
- 16. Copy Constructor y constructor predeterminado
- 17. constructor o constructor de copia?
- 18. Consumo interno de servicios web
- 19. Eliminar archivo del almacenamiento interno
- 20. Interno de Python para cadenas
- 21. android teléfono interno de almacenamiento
- 22. certificado HTTPS para uso interno
- 23. Recorte interno con Java Graphics
- 24. C# interno VS VBNET amigo
- 25. borde interno css, diseño roto
- 26. Cómo hacer svn interno: externos
- 27. Codeplex/Sourceforge para uso interno
- 28. Java API Design - Diseño interno
- 29. error interno del servidor - .htaccess
- 30. Delphi: F2084 Error interno T2575