Feedback

C# - Einfaches Singleton-Pattern

Veröffentlicht von am 6/18/2015
(1 Bewertungen)
Implementierung eines einfaches Singleton-Pattern.

public sealed class Singleton
{
    private Singleton()
    {}

    // Dein Code hier

    public static Singleton Instance
    { 
        get { return lazy.Value; } 
    }

    private static readonly Lazy<Singleton> lazy = new Lazy<Singleton>(() => new Singleton());
}

Abgelegt unter singleton.

2 Kommentare zum Snippet

Stefan Kern schrieb am 6/20/2015:
Verwende ich auch oft aber braucht man den teil "() => new Singleton()" wirklich?
Koopakiller schrieb am 6/22/2015:
@Stefan
durch die Lazy<T>-Klasse wird die Instanz erst erzeugt wenn man sie braucht. Alternativ könnte man auch im Getter prüfen ob die Instanz null ist und ggf. eine neue erzeugen. Mit der Lazy<T>-Klasse ist es aber etwas moderner. Soweit die allgemeine Theorie.

Wenn man den Parameterlosen Konstruktor aufrufen will kann man den Lambda auch einfach weg lassen. Da hast du recht. Ich halte es trotzdem für erwähnenswert falls man einen nicht parameterlosen Konstruktor oder eine ganz andere Initialisierung einbauen möchte.
 

Logge dich ein, um hier zu kommentieren!