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
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?
Wenn dein Objekt wild andere Objekte dynamisch anlegt, und vlt. noch per zeiger... Dann sorgt der Destruktor dafür das alles wieder aufgeräumt wird (also Speicher wieder freigegeben wird)
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. -------------------------------------------------------------
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 ;-)
Kurzum, für "normale" Programme, die keine unsafe Zeiger Sauereien machen brauchst du den Destruktor nicht. Ist aber schön, dass das in deinem Buch erwähnt wird (ist das nen c++ Buch?)
Sven H. schrieb: > Ist aber schön, dass das in deinem Buch erwähnt wird (ist das nen c++ > Buch?) Der Titel sagt doch schon, dass das ein C# Buch sein muss, und zufällig kenne ich diesen Abschnitt--> Visual C# openbook galileo computing Rudi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.