Модификаторы доступа, такие как public
, private
, не допускаются к статическим конструкторам на C#. Тем не менее, анализ кода Visual Studio имеет предупреждение в категории безопасности C#, в котором указано «CA2121: Static constructors should be private».Как статические конструкторы могут быть сделаны не частными?
Можно ли сделать статический конструктор не-частным? Или это ошибка анализа кода Visual Studio?
CLARIFICATION: Я не пытаюсь сделать какой-либо конструктор не-частным. Итак, почему? вопросы не имеют значения. Мне просто интересно о противоречии между двумя инструментами Microsoft и хочу узнать, есть ли что-то, что я не знаю о том, как обрабатываются статические конструкторы.
Цитата из вышеприведенной ссылки: 'Пользователь не имеет контроля над вызовом статического конструктора. Если статический конструктор не является приватным, его можно вызывать кодом, отличным от системы. В зависимости от операций, выполняемых в конструкторе, это может вызвать непредвиденное поведение. « – Tisho
Я думаю, соответствующая цитата« Это правило применяется компиляторами C# и Visual Basic .NET ». Итак, нет, вы не можете сделать его не-частным в C#. – Henrik