
Originariamente inviata da
andbin
Appunto.
Pensa: un membro "static" è concettualmente associato alla classe che lo contiene. Se una classe top level potesse essere static, con chi e come c'entrerebbe? Con niente. E quindi non farebbe differenza.
L'ho detto al punto prima.
Una classe nested (static) che è quindi membro di un'altra classe la si usa spesso per rappresentare un sotto-concetto o per implementare una qualche interfaccia usata all'interno della classe top level o altre cose del genere. Anche una enum che è nested dentro una classe è implicitamente static.
Conta solo il fatto che il metodo sia static. Non dove sia. Dove sia (se in una classe top level o nested) cambia solo a livello di qualificazione del nome.
ClasseTopLevel.metodoStatico() oppure ClasseTopLevel.ClasseNested.metodoStatico()
Continuo a ripeterti che il pattern "singleton" non c'entra nulla con top level vs nested.
Una classe "singleton" (di cui si può ottenere una sola ed unica istanza) la puoi realizzare sia come top level che come nested static class.
.Net è sicuramente tutta un'altra cosa .... non facciamo miscugli di linguaggi e piattaforme completamente differenti.
