C# Programierung Destruktor?

Gast #1841799
Lesenswert?

Hallo Alle zusammen,

Ich bin beim Lesen eines Handbuches auf ein Kapitel gestossen das über 
den Destruktor handelt.

Ich selbst kann mir trotz der guten Erklärung leider nicht vorstellen 
worum es sich genau handelt.

Bis jez weis ich nur, dass es sich um das Beenden eines Objektes 
handelt.

Über gute Erklärungen wär ich sehr dankbar!

mfg
#1841808
Lesenswert?

Nestea schrieb:
> Hallo Alle zusammen,
>
> Ich bin beim Lesen eines Handbuches auf ein Kapitel gestossen das über
> den Destruktor handelt.
>
> Ich selbst kann mir trotz der guten Erklärung leider nicht vorstellen
> worum es sich genau handelt.

Und jetzt suchst Du hier nach einer noch besseren Erklärung?
Wie wärs, wenn Du die gute Erklärung posten würdest, um zu vermeiden, 
dass jemand in etwa dieselbe, für Dich nutzlose erklärung verfasst?

Kurz und vereinfacht gesagt, brauchst Du in C# einen Destruktor nur, um 
Ressourcen freizugeben, die nicht automatisch von .NET freigegeben 
werden.

Alles klar?
Gast #1841819
Lesenswert?

Danke für die Antwort, genau nach dieser Antwort hab ich gesucht.

Ich poste die Erklärung trotzdem noch:

----------------------------------------------------------------------
Destruktor

Ein Konstruktor wird aufgerufen, wenn das Objekt einer Klasse erzeugt 
wird. Damit beginnt der Lebenszyklus des Objekts, der dann endet, wenn 
das Pendant des Konstruktors aufgerufen wird: der Destruktor. Im 
Destruktor sind oft Anweisungen enthalten, um die von einem Objekt 
zusätzlich beanspruchten Fremdressourcen freizugeben, die beispielsweise 
andere Systeme belasten. Dazu gehören unter anderem Netzwerk- oder 
Datenbankverbindungen, die in einer objektinternen Referenz vorgehalten 
werden.

Der Umstand, der zur Aufgabe eines konkreten Objekts und dem damit 
verbundenen Destruktoraufruf führt, kann

das Verlassen des Gültigkeitsbereichs der Objektvariablen oder
die Zuweisung von null an die Objektreferenz
sein. Das bedeutet jedoch nicht, dass beim Eintreten einer dieser beiden 
Bedingungen augenblicklich der Destruktor ausgeführt wird. Tatsächlich 
kann das noch eine unbestimmbare Zeit dauern. Mit anderen Worten 
bedeutet dies, dass das Objekt zwar aus Sicht des Programms nicht mehr 
existiert, sich jedoch immer noch im Speicher befindet und diesen 
letztendlich belastet.

-------------------------------------------------------------
Gast #1842221
Lesenswert?

Implementiere in Deinem Objekt das IDisposable Interface und 
überschreibe die Dispose Methode (Wenn überhaupt gebraucht). In der 
Regel räumt der Garbage Collector auf. Mein weiss halt nur nie, wann er 
es macht ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren