![]() |
Destruktor in C# aufrufen?
Hoi,
ich habe eine Klasse innerhalb meiner Klasse... Wie rufe ich dort den Konstruktor auf? In C++ war das "delete" soweit ich noch weiss... |
Re: Destruktor in C# aufrufen?
Es gibt keine Destruktoren in .Net. Du hast auch nur minimale Möglichkeiten die Zerstörung einer Instanz zubeinflussen.
Wenn du Dinge machst, die zum Schluss aufgeräumt werden müssen (Instanzen freigeben ausgenommen, das erledigt die GC), schaue dir mal das IDisposable interface an. In .Net wird für sowas das Disposable Pattern benutzt. ;) |
Re: Destruktor in C# aufrufen?
Oh man, ich merke schon - es wird schwierig(?) :( :oops:
Wenn ich zur Laufzeit 10 UserKlassen erstelle, kann ich davon keine freigeben bis zum Ende des Programms? Oder wie ist das |
Re: Destruktor in C# aufrufen?
Du brauchst dich nicht mehr um das Freigeben von Speicher kümmern. Der GC (Garbage Collector) prüft, ob du nach dem Zeitpunkt X noch mal auf ein Objekt zugreifen wirst. Wenn die Code-Prüfung ergibt, das du nicht mehr auf diese Objekt zugreifen wirst/kannst, dann gibt der GC das Objekt frei.
|
Re: Destruktor in C# aufrufen?
WIe kann sie prüfen wann der User zur Laufzeit das Objekt noch braucht oder nicht?
|
Re: Destruktor in C# aufrufen?
Wenn niemand mehr eine Referenz auf eine Instanz hält wird diese beim nächsten Sweep der GC zerstört.
Solange du nur hübsche .Net Klassen ohne native Anhängsel benutzt hört die Geschichte für dich hier auf und alles ist in Butter... ;) Wenn nicht, nunja dannn kommen wir wieder zurück zu IDisposable und Konsorten[1]. Denn mit native Krempel läufst du in Bereiche, die die GC nicht verwalten kann. Du implementierst also IDisposable und packst in Dispose den Code zum aufräumen. Außerdem muss der Benutzer nun auch explizit Dispose aufrufen. (Ähnlich wie das Free() in D32) [1]Die krankeste Konsequenz wären Finalizer, aber ich hasse die Viecher zu sehr um darauf weiter einzugehen. ;) |
Re: Destruktor in C# aufrufen?
Im Netz gibts ja viele Sachen darüber. Hier mal eine
![]() ![]() |
Re: Destruktor in C# aufrufen?
Danke für eure Hilfe ;)
Ich glaube aber, dass ich trotzdem mal ein Buch brauche, sonst bin ich hier ewig am dämliche Fragen stellen;). Ich habe mir eben folgendes bestellt: Zitat:
|
Re: Destruktor in C# aufrufen?
Zitat:
Sehr schön ist auch die C# Edition ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz