CA2121: Konstruktory statyczne powinny być prywatne
Pozycja | Wartość |
---|---|
Ruleid | CA2121 |
Kategoria | Microsoft.Security |
Zmiana powodująca niezgodność | Kluczowa |
Przyczyna
Typ ma konstruktor statyczny, który nie jest prywatny.
Uwaga
Ta reguła została przestarzała. Aby uzyskać więcej informacji, zobacz Przestarzałe reguły.
Opis reguły
Konstruktor statyczny, znany również jako konstruktor klasy, służy do inicjowania typu. System wywołuje statyczny konstruktor przed utworzeniem pierwszego wystąpienia typu lub przed odwołaniem do któregokolwiek ze statycznych elementów członkowskich. Użytkownik nie ma kontroli nad wywoływaniem 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, które są wykonywane w konstruktorze, może to spowodować nieoczekiwane zachowanie.
Ta reguła jest wymuszana przez kompilatory języka C# i Visual Basic.
Jak naprawić naruszenia
Naruszenia są zwykle spowodowane przez jedną z następujących akcji:
Zdefiniowano konstruktor statyczny dla typu i nie utworzono go jako prywatnego.
Kompilator języka programowania dodał domyślny konstruktor statyczny do typu i nie uczynił go prywatnym.
Aby naprawić pierwszy rodzaj naruszenia, utwórz prywatny konstruktor statyczny. Aby naprawić drugi rodzaj, dodaj prywatny konstruktor statyczny do typu.
Kiedy pomijać ostrzeżenia
Nie pomijaj tych naruszeń. Jeśli projekt oprogramowania wymaga jawnego wywołania konstruktora statycznego, prawdopodobnie projekt zawiera poważne wady i powinien zostać sprawdzony.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla