Also habe gerade eine Singleton Klasse in C# erstellt, und wollte nun aber doch mal bei Google gucken, was denn so Standard ist…
Dabei bin ich auf mehrere Seiten gestoßen und bin mir nicht mehr sicher, was “gut” ist und was nicht.
Da hätten wir zunächst die “offizielle” MSDN Seite: MSDN: Implementing Singleton in C#
Dann eine andere, die aber recht seriös wirkt: Implementing the Singleton Pattern in C#
Leider weiß ich nicht was ich jetzt für “gut” halten soll… ich hab mich jetzt für:
private static readonly ServiceManager instance = new ServiceManager();
entschieden, was auf der MSDN Seite als threadsafety steht, und auch auf der anderen Seite als Beispiel 4 angewendet wird. Nur das dort steht, dass man unbedingt einen static Constructor braucht, da der C# Compiler sonst die Klasse mit beforefieldinit markiert… sollte da jemand Licht ins dunkle bringen können, immer her damit!