Los modificadores de acceso como public
, private
no están permitidos en constructores estáticos en C#. Sin embargo, el análisis de código de Visual Studio tiene una advertencia en la categoría de seguridad C# que dice "CA2121: Static constructors should be private".¿Cómo pueden los constructores estáticos no hacerse privados?
¿Es posible hacer que un constructor estático no sea privado? ¿O es un error del análisis de código de Visual Studio?
ACLARACIÓN: No estoy tratando de hacer cualquier constructor no privado. ¿Entonces por qué?" las preguntas son irrelevantes. Solo tengo curiosidad sobre la contradicción entre dos herramientas de Microsoft y quiero ver si hay algo que no sé sobre cómo se manejan los constructores estáticos.
Una cita del enlace de arriba: 'El usuario no tiene control sobre cuándo se llama al constructor estático. Si un constructor estático no es privado, puede ser llamado por un código que no sea el sistema. Dependiendo de las operaciones que se realizan en el constructor, esto puede causar un comportamiento inesperado. – Tisho
Creo que la cita relevante es "Esta regla es impuesta por los compiladores C# y Visual Basic .NET". Entonces, no, no puedes hacerlo no privado en C#. – Henrik