Codefieber.de

IT-Blog

Destructor in C# – Was ist das?

| 3 Kommentare

In C# gibt es den sogenannten “Garbage Collecor”, welcher ein Objekt, welches nicht mehr benötigt wird aus dem Speicher löscht. Dies geschieht völlig automatisiert. Allerdings will man vielleicht ein Objekt gar nicht automatisiert löschen lassen, sondern manuell sicherstellen, dass es gelöscht wird.
Dann kommt der sogenannte “Destructor” zum Einsatz. Dies ist eine Methode um ein nicht länger benötigtes Objekt aus den Ressourcen zu löschen. Wie auch bei dem “Constructor”, wird der Destructor mit dem Klassenname “gestartet”. Anders ist hier allerdings das vorangehende ~ Zeichen.
Die Methoden sehen also nicht viel anders aus, als herkömmliche. Hier ein kurzes Beispiel:

~Car() 
{
    Console.WriteLine("Out..");
}

Sobald das Objekt vom Garbage Collector gesammelt wird, wird diese Methode aufgerufen.

avatar

Autor: Pascal

Codefieber.de wird von Pascal Betke geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.

3 Kommentare

  1. avatar

    Hallo Pascal,

    Wenns darum geht ein Objekt manuell zu löschen fehlt noch die Info wie man genau das tut. Der Destruktor arbeitet ja unabhängig davon ob das Objekt manuell oder automatisch gelöscht wurde.

    Schöne Grüße, Robert

    • avatar

      Hallo Robert,

      vielen Dank! Das Objekt und alle daraufzeigenden Referenzen müssten manuell auf null gesetzt werden. Danach übernimmt dann der Garbage Collector das Löschen des Objektes.

      MyObj obj1 = new MyObj();
      obj1 = null;

      Oder gibt es noch andere Möglichkeiten?

  2. avatar

    Keine Ahnung, ehrlich gesagt. Kenne C# nicht. Bei C++ konnte man das Objekt einfach löschen auch wenn noch Zeiger darauf gesetzt waren, aber ich denke das wird in C# aus Sicherheitsgründen nicht gehen, wie in Java.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.