AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Destruktor in C# aufrufen?

Ein Thema von Pseudemys Nelsoni · begonnen am 27. Feb 2006 · letzter Beitrag vom 27. Feb 2006
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Destruktor in C# aufrufen?

  Alt 27. Feb 2006, 08:08
Hoi,

ich habe eine Klasse innerhalb meiner Klasse... Wie rufe ich dort den Konstruktor auf? In C++ war das "delete" soweit ich noch weiss...
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Destruktor in C# aufrufen?

  Alt 27. Feb 2006, 08:19
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.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: Destruktor in C# aufrufen?

  Alt 27. Feb 2006, 09:46
Oh man, ich merke schon - es wird schwierig(?)

Wenn ich zur Laufzeit 10 UserKlassen erstelle, kann ich davon keine freigeben bis zum Ende des Programms? Oder wie ist das
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Destruktor in C# aufrufen?

  Alt 27. Feb 2006, 09:52
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.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#5

Re: Destruktor in C# aufrufen?

  Alt 27. Feb 2006, 09:54
WIe kann sie prüfen wann der User zur Laufzeit das Objekt noch braucht oder nicht?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Destruktor in C# aufrufen?

  Alt 27. Feb 2006, 09:59
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.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Destruktor in C# aufrufen?

  Alt 27. Feb 2006, 10:04
Im Netz gibts ja viele Sachen darüber. Hier mal eine kurze Version und für Hardcore-Fragen was Offizielles.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#8

Re: Destruktor in C# aufrufen?

  Alt 27. Feb 2006, 11:04
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:
Produktbezeichnung Menge Best.Nr. Preis Summe
Microsoft Visual C# 2005 - Schritt für Schritt 1 MS-551 39.90 EUR 39.90 EUR
Dieser Artikel verlässt unser Haus voraussichtlich am 27.02.2006.
Könnt ihr mir sonst noch eins empfehlen?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Destruktor in C# aufrufen?

  Alt 27. Feb 2006, 14:11
Zitat von Pseudemys Nelsoni:
Könnt ihr mir sonst noch eins empfehlen?
Mein Standardtip: "Applied MS .Net Programming" aka "die .Net Bibel"
Sehr schön ist auch die C# Edition davon. Es lernt sich sicherlich ganz gut wenn man es gleich richtig sieht.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz