Laden...

Singelton zerstören

Erstellt von ayrtonsenna vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.464 Views
ayrtonsenna Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren
Singelton zerstören

Hi,
da ich gerade mit C# anfange, bin ich nun beim Singelton angekommen und hab mal wieder eine (Anfänger-)Frage.
Ich habe derzeit 2 Varianten für eine Singelton-Implementierung
Variante 1:

public sealed class Singleton
{
    static Singleton instance=null;

    Singleton()
    {
    }

    public static Singleton Instance
    {
        get
        {
            if (instance==null)
            {
                instance = new Singleton();
            }
            return instance;
        }
    }
}

und die elegante und von MSDN empfohlene Variante 2:

sealed class Singleton 
{
    private Singleton() {}
    public static readonly Singleton Instance = new Singleton();
}

Wenn ich beispielsweise den Singelton zerstören will, weil ich ihn (erstmal) nicht mehr brauche, kann ich in Variante1 im Dispose instance=null setzen. Aber wie mache ich das ich Variante2?
Danke für Tipps und Erläuterungen...

6.862 Beiträge seit 2003
vor 17 Jahren

Wie willst du im ersten Fall instance auf null setzen?

Versteh den Sinn dahinter noch net ganz, nen Singleton ist doch da um genau eine Instanz zu liefern, nicht um mal eine und später mal ne andere.

Baka wa shinanakya naoranai.

Mein XING Profil.

ayrtonsenna Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren

Zum Beispiel wenn man sicherstellen will, das es nur eine Instanz einer Form gibt.
Wenn man die eine Instanz schließt und später mit instanzMeinerSingeltonForm.Show() anzeigen will...Bang

6.862 Beiträge seit 2003
vor 17 Jahren

Ja, bei ner Form ist des ja wieder was anderes 🙂

Wenn du deine Form schließt, wird sie ja disposed weil von ausgegangen wird, Schließen der Form bedeutet, ich brauch die nicht mehr. Ein Singleton dagegen bedeutet ja das du das Objekt weiterverwenden willst, und somit müsstest du deine Form bloß mit Hide verstecken. Wenn du ne Form schließt und wieder neu zeigen willst, dann ist das ja net mehr das gleiche Objekt und somit ist die Grundbedingung eines Singletons net erfüllt.

Jedenfalls aus meiner Sicht.

Baka wa shinanakya naoranai.

Mein XING Profil.

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo ayrtonsenna,

ja, Singleton würde ich das auch nicht mehr nennen, aber du kannst - wenn du den Namen änderst - es trotzdem so machen, wie du geschrieben hast. Die Variante 2 scheidet dann natürlich aus.

herbivore