0 Pluspunkte 0 Minuspunkte
Wie schreibe ich eine Singleton Klasse in C# so das es im ganzen Programm nur eine Instanz von der Klasse geben darf?
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Hier ist eine Implementierung einer Singleton-Klasse in C#, die sicherstellt, dass es im gesamten Programm nur eine Instanz der Klasse gibt.

public class Singleton
{
    // Die einzige Instanz der Klasse Singleton
    private static Singleton instance;

    // Ein privater Konstruktor, um die Instanziierung von außerhalb der Klasse zu verhindern
    private Singleton()
    {
        // Initialisierungscode hier...
    }

    // Eine statische Methode, um die Instanz des Singletons abzurufen
    public static Singleton GetInstance()
    {
        // Wenn die Instanz noch nicht erstellt wurde, erstelle sie
        if (instance == null)
        {
            instance = new Singleton();
        }
        // Gib die Instanz zurück
        return instance;
    }

    // Beispielmethoden der Singleton-Klasse
    public void DoSomething()
    {
        Console.WriteLine("Singleton führt eine Aktion aus...");
    }
}

Und so verwendest du sie.

class Program
{
    static void Main(string[] args)
    {
        // Zugriff auf die Singleton-Instanz
        Singleton singleton1 = Singleton.GetInstance();
        singleton1.DoSomething();

        // Weitere Versuche, die Instanz zu erhalten, geben die gleiche Instanz zurück
        Singleton singleton2 = Singleton.GetInstance();
        Console.WriteLine(singleton1 == singleton2); // Output: True, da es sich um dieselbe Instanz handelt
    }
}
von (732 Punkte)  
Kannst du mir denn vielleicht noch zeigen wie ich die erstelle bzw darauf zugreife?
Ich habe ein Beispiel eingefügt.
Nice, danke für die schnelle Hilfe :-)