Modyfikatory dostępu, takie jak public
, private
, nie są dozwolone na statycznych konstruktorach w języku C#. Jednak analiza kodu Visual Studio ma ostrzeżenie w kategorii bezpieczeństwa C#, które mówi "CA2121: Static constructors should be private".W jaki sposób konstruktory statyczne mogą być nieprywatne?
Czy możliwe jest wykonanie statycznego konstruktora jako nieprywatnego? Czy jest to błąd analizy kodu Visual Studio?
CLARIFICATION: Nie próbuję uczynić żadnego konstruktora nieprywatnym. Więc dlaczego?" pytania są nieistotne. Po prostu ciekawi mnie sprzeczność między dwoma narzędziami Microsoftu i chcę zobaczyć, czy jest coś, czego nie wiem o tym, jak traktuje się statyczne konstruktory.
Cytat z powyższego linku: 'Użytkownik nie ma kontroli nad wywołaniem konstruktora statycznego. Jeśli konstruktor statyczny nie jest prywatny, może być wywołany przez kod inny niż system. W zależności od operacji wykonywanych w konstruktorze może to spowodować nieoczekiwane zachowanie. " – Tisho
Myślę, że odpowiedni cytat to" Ta reguła jest egzekwowana przez kompilatory C# i Visual Basic .NET. " Tak, nie, nie można uczynić go nieprywatnym w języku C#. – Henrik