I modificatori di accesso come public
, private
non sono consentiti sui costruttori statici in C#. Tuttavia, l'analisi del codice di Visual Studio ha un avviso nella categoria di sicurezza C# che dice "CA2121: Static constructors should be private".In che modo i costruttori statici possono essere resi non privati?
È possibile creare un costruttore statico non privato? O è un errore dell'analisi del codice di Visual Studio?
CHIARIFICAZIONE: Non sto cercando di rendere qualsiasi costruttore non privato. Quindi "perché?" le domande sono irrilevanti. Sono solo curioso della contraddizione tra due strumenti Microsoft e voglio vedere se c'è qualcosa che non so su come vengono gestiti i costruttori statici.
Una citazione dal collegamento sopra: 'L'utente non ha alcun controllo su quando viene chiamato il costruttore statico. Se un costruttore statico non è privato, può essere chiamato da un codice diverso dal sistema. A seconda delle operazioni eseguite nel costruttore, questo può causare un comportamento imprevisto. – Tisho
Penso che la citazione pertinente sia "Questa regola viene applicata dai compilatori C# e Visual Basic .NET". Quindi, no, non puoi renderlo non privato in C#. – Henrik