Tengo una duda de que una clase estática puede contener un constructor privado.¿Podemos tener un constructor privado en una clase estática?
Respuesta
clases estáticas no pueden tener constructores de instancia
http://msdn.microsoft.com/en-us/library/79b3xss3.aspx
La siguiente lista proporciona las características principales de una clase estática:
- Contiene solo miembros estáticos.
- No se puede crear una instancia.
- Está sellado.
- No puede contener constructores de instancias.
Una clase estática no puede tener cualquier constructor de instancias (ver CS0710), ya sea público, privado, protegido o interno.
Consulte el siguiente artículo para obtener más información.
Static Classes and Static Class Members (C# Programming Guide)
@jonathan: Estoy buscando una 'clase estática pública' en Reflector un ildasm, pero solo puedo encontrar el constructor estático' static static void .cctor() '. ¿Dónde estaría este constructor de instancia privada? –
¿Qué haría este constructor? La clase es estática, por lo que nunca se crea una instancia. Puede tener un constructor estático en una clase no estática para inicializar campos estáticos, pero en una clase estática, el único constructor que tiene sentido es el constructor estático, y que se llama ser el CLR.
adición: Jon Skeet posted an article sobre el momento de la inicialización de la clase estática (normalmente se inicializa en el primer uso, pero a veces se desea inicializar cuando se inicia el programa) y un cambio posible en .NET 4.
@Jonathan Wow, eso es extraño. Estoy tratando de pensar cómo eso alguna vez hubiera sido útil, pero cuando lo reemplazaron creo que tenían la misma conclusión :) –
@Jonathan le dice al CLR que una clase _static_ no puede ser instanciada para Real? –
Tu duda es correcta.
Una clase estática solo puede tener un constructor estático y público/privado no se aplica ya que su código nunca puede llamar a este constructor (el CLR sí).
Así que no puede usar un modificador de acceso (público/privado/...) en un constructor estático.
regla es clases estáticas no pueden tener constructores de instancia
- 1. constructor privado
- 2. ¿Podemos definir un IBOutlet privado?
- 3. ¿Por qué podemos tener miembros finales estáticos pero no podemos tener un método estático en una clase interna?
- 4. Constructor privado en la clase abstracta
- 5. ¿Por qué necesitamos un constructor privado?
- 6. ¿Cómo puedo acceder a un constructor privado de una clase?
- 7. En Java, ¿cómo hago una clase con un constructor privado cuya superclase también tiene un constructor privado?
- 8. Instanciando clase interna con constructor privado
- 9. ¿Es una mala práctica tener estado en una clase estática?
- 10. Clase estática vs. ¿Clases con constructor privado y todas las propiedades y métodos estáticos?
- 11. ¿Es malo tener variables públicas en una clase no estática?
- 12. ¿Cómo puedo instanciar una clase que está teniendo constructor privado
- 13. constructor privado y final
- 14. ¿Podemos tener una asignación en una condición?
- 15. En .NET ¿una clase puede tener constructor virtual?
- 16. ¿Es bueno tener un constructor en clase abstracta?
- 17. ¿Es aceptable tener un parámetro en el constructor de clase?
- 18. serializar una clase estática?
- 19. alcance del constructor privado en la clase jerarquizada
- 20. En una clase PHP5, ¿cuándo se llama a un constructor privado?
- 21. ¿Podemos detener la ejecución de un constructor?
- 22. se extiende de la clase con constructor privado
- 23. ¿Es posible configurar este miembro privado estático de una clase estática con reflexión?
- 24. ¿Podemos tener una variedad de módulos personalizados?
- 25. ¿Cuántas cookies podemos tener para un dominio?
- 26. ¿Por qué una enumeración tiene un constructor privado de paquetes?
- 27. ¿Podemos tener un método estático virtual? (C++)
- 28. Acceso a un constructor privado desde fuera de la clase en C#
- 29. Método principal en una clase interna estática.
- 30. ¿Cuántas JVM podemos tener en una sola máquina?
Si tiene Visual Studio (o similar) instalado, mi conjetura es que te llevaría a menos de 1 minuto para compilar y comprobar esto por sí mismo ... –
Johann, eso no es motivo para no pregúntalo en SO. Ver las preguntas frecuentes –