Zugriffsmodifizierer wie public
, private
sind für statische Konstruktoren in C# nicht zulässig. Die Visual Studio-Codeanalyse enthält jedoch eine Warnung in der C# -Sicherheitskategorie "CA2121: Static constructors should be private".Wie können statische Konstruktoren nicht privat gemacht werden?
Ist es möglich, einen statischen Konstruktor nicht privat zu machen? Oder ist das ein Fehler bei der Analyse von Visual Studio-Code?
CLARIFICATION: Ich versuche nicht, irgendeinen Konstruktor nicht privat zu machen. Warum also?" Fragen sind irrelevant. Ich bin nur neugierig auf den Widerspruch zwischen zwei Microsoft-Tools und möchte sehen, ob es etwas gibt, was ich nicht weiß, wie statische Konstruktoren behandelt werden.
Ein Zitat aus dem obigen Link: 'Der Benutzer hat keine Kontrolle darüber, wann der statische Konstruktor aufgerufen wird. Wenn ein statischer Konstruktor nicht privat ist, kann er durch einen anderen Code als das System aufgerufen werden. Abhängig von den Operationen, die im Konstruktor ausgeführt werden, kann dies zu unerwartetem Verhalten führen. " – Tisho
Ich denke, das relevante Zitat lautet" Diese Regel wird von den C# - und Visual Basic .NET-Compilern erzwungen. " Also, nein, in C# kann man es nicht privat machen. – Henrik