ich über Singleton-Entwurfsmuster zu lesen, wenn ich über diese Umsetzung kommen:Singleton: create Instanz innerhalb statischen Konstruktor
public class Singleton
{
private static Singleton Instance { get; private set; }
private Singleton()
{
}
static Singleton()
{
Instance = new Singleton();
}
}
Ist die Singletons Thread-sicher? Was sind die Vor- und Nachteile einer solchen Implementierung?
Zur Diskussion der Vor/Nachteile zu lesen (das ist meist Wegthema auf Stack-Überlauf), siehe z.B. http://csharpindepth.com/Articles/General/Singleton.aspx –
Ich habe diesen Artikel gesehen, aber das obige Beispiel wurde nicht erwähnt – Mhd
Ihr Beispiel ist funktionell identisch mit einfach das Backing-Feld direkt zu initialisieren, z. 'statische Singleton-Instanz {get; } = new Singleton(); ', eine Variation, die in diesem Artikel diskutiert wird. Natürlich ist der von Ihnen gepostete Code nutzlos, da die 'Instance'-Eigenschaft 'private' ist und daher nur von der' Singleton'-Klasse selbst aufgerufen werden kann (die keine Beschränkungen dafür hat, wie viele Instanzen von' Singleton' erzeugt werden können) ... Singletons sind wirklich nur nützliche Konstrukte für externen Code). –