C# Singleton

c# singleton

Vielleicht hast du schonmal von dem Begriff “Singleton” gehört, hast aber keine Ahnung, was es bedeutet. Keine Sorge, du bist nicht alleine! In diesem Artikel werfen wir einen genaueren Blick darauf, was ein C# Singleton ist, warum man es verwenden könnte und wie man es in C# erstellt.

Du programmierst gerne aber stößt dabei immer wieder auf Fehler und Wissenslücken? Dann kann ich dir jetzt sofort weiterhelfen! 🙂 Mit meinem C# Videokurs meisterst du C# ganz einfach und in Rekordzeit! So holen wir das Meiste aus deiner Zeit heraus! Alles andere wäre doch eine völlige Verschwendung, oder? Mit dem Kurs machst du endgültig SCHLUSS mit komplexen Konzepten und frustrierenden Fehler. Bist du bereit um ein hochkompetenter C# Entwickler zu werden? Super! Dann klicke jetzt auf den Button, und ich werde dir sofort den Kurs zeigen, mit dem du C# schnell und fast schon zu einfach meistern wirst:

Was ist ein Singleton?

Ein Singleton ist ein Entwurfsmuster (Design Pattern), das sicherstellt, dass eine Klasse nur zu einem bestimmten Zeitpunkt eine Instanz hat. Das bedeutet, dass, wenn du versuchst, mehrere Instanzen dieser Klasse zu erstellen, sie alle auf dasselbe Objekt verweisen werden. Dies kann in Situationen nützlich sein, in denen du nur eine Instanz eines Objekts erstellen und global zugänglich machen möchtest.

Warum sollte ich einen C# Singleton verwenden?

Es gibt ein paar Gründe, warum du in deinem C#-Code ein Singleton verwenden möchtest:

Globaler Zugriff: Wenn du sicherstellen möchtest, dass ein Objekt global zugänglich ist, ist ein Singleton eine gute Wahl. Zum Beispiel könntest du ein Singleton für eine Logging-Klasse verwenden, auf die du von überall in deinem Code zugreifen möchtest.

Ressourcenverwaltung: Ein Singleton kann auch nützlich sein, um Ressourcen zu verwalten, die teuer zu erstellen sind, wie zum Beispiel Datenbankverbindungen. Indem du nur eine Instanz des Objekts zu einem bestimmten Zeitpunkt erstellen lässt, sparst du Ressourcen und verbesserst die Leistung.

Statusverwaltung: Ein Singleton kann auch verwendet werden, um den Status einer Anwendung zu verwalten. Zum Beispiel könntest du ein Singleton verwenden, um Benutzereinstellungen oder Einstellungen zu speichern, die von mehreren Teilen des Codes aufgerufen werden müssen.

Wie man ein Singleton in C# erstellt

Ein Singleton in C# zu erstellen ist relativ einfach. Hier ist ein Beispiel für eine einfache Singleton-Klasse:

public class Singleton
{
    private static Singleton _instance;

    private Singleton()
    {
    }

    public static Singleton Instanz
    {
        get
        {
            if (_instance == null)
            {
                _instance = new Singleton();
            }
            return _instance;
        }
    }
}

In dem oben stehen Code wird bei ersten Aufruf der statischen Instanz ein Singleton Objekt initialisiert. Von da an wird nur noch diese eine Instanz geteilt und verwendet.

Es ist wichtig zu beachten, dass diese Implementierung nicht threadsicher ist und daher in Umgebungen verwendet werden sollte, in denen keine parallele Verarbeitung stattfindet oder in denen dieses Risiko akzeptiert wird.

C# Singleton aber thread-safe

Mit folgendem Code kannst du ein C# Singleton erstellen, der thread-safe ist und somit auch in unterschiedlichen Threads geteilt und verwendet wird:

public class Singleton
{
    private static Singleton _instance;
    private static readonly object _lock = new object();

    private Singleton()
    {
    }

    public static Singleton Instanz
    {
        get
        {
            lock (_lock)
            {
                if (_instance == null)
                {
                    _instance = new Singleton();
                }
                return _instance;
            }
        }
    }
}

In diesem Beispiel definieren wir eine Singleton-Klasse und eine private statische Variable _instance, die die Singleton-Instanz halten wird, und eine private statische readonly-Objektvariable _lock, die wir für die Threadsynchronisierung verwenden werden.

Die Eigenschaft Instanz verwendet eine lock-Anweisung, um sicherzustellen, dass nur ein Thread die Instanz zu einem bestimmten Zeitpunkt erstellen kann und überprüft auch, ob die _instance-Variable null ist, bevor eine neue Instanz erstellt wird.

Wenn du noch mehr darüber lesen willst, dann schau mal hier nach.

Willst du wissen, wie du einfach und schnell zum C# Profi wirst?
PRogrammieren lernen kann einfach sein!
Overlay Image
Willst du wissen, wie du einfach und schnell zum C# Profi wirst?
PRogrammieren lernen kann einfach sein!
Overlay Image
Setze dein gelerntes Wissen in die Tat um und programmiere echte Anwendungen.
1. Tipp
1/3
Overlay Image
Setze dein gelerntes Wissen in die Tat um und programmiere echte Anwendungen.
1. Tipp
1/3
Overlay Image
Lerne wie du mit Debugging Fehler eines Programmes professionell beheben kannst.
2. Tipp
2/3
Overlay Image
Lerne wie du mit Debugging Fehler eines Programmes professionell beheben kannst.
2. Tipp
2/3
Overlay Image
Fokussiere dich beim lernen auf die richtigen Inhalte und nicht auf die Menge.
3. Tipp
3/3
Overlay Image
Fokussiere dich beim lernen auf die richtigen Inhalte und nicht auf die Menge.
3. Tipp
3/3
Overlay Image
Ja, so einfach kann es sein! Mit meinem C# Video-Intensivkurs wirst du ganz einfach zum echten C# Profi Entwickler. Möchtest du mehr dazu erfahren?
Alles in einem Kurs
Overlay Image
Ja, so einfach kann es sein! Mit meinem C# Intensivkurs für Grundlagen und Expertenwissen wirst du ganz einfach zum echten Profi Entwickler. Möchtest du mehr dazu erfahren?
Alles in einem Kurs
Overlay Image
Diese Seite verwendet Cookies. Wir können diese zur Analyse unserer Besucherdaten platzieren, um unsere Website zu verbessern, personalisierte Inhalte anzuzeigen und Ihnen ein großartiges Website-Erlebnis zu bieten. Für weitere Informationen zu den von uns verwendeten Cookies öffnen Sie die Einstellungen.
Datenschutz
IT Leismann, Inhaber: Jannick Leismann (Firmensitz: Deutschland), verarbeitet zum Betrieb dieser Website personenbezogene Daten nur im technisch unbedingt notwendigen Umfang. Alle Details dazu in der Datenschutzerklärung.
Datenschutz
IT Leismann, Inhaber: Jannick Leismann (Firmensitz: Deutschland), verarbeitet zum Betrieb dieser Website personenbezogene Daten nur im technisch unbedingt notwendigen Umfang. Alle Details dazu in der Datenschutzerklärung.