Laden...

Wie und wann gibt C# Objekte wieder frei? Manuell oder automatisch via Garbage Collection?

Erstellt von TauCeti vor 5 Jahren Letzter Beitrag vor 5 Jahren 738 Views
T
TauCeti Themenstarter:in
3 Beiträge seit 2019
vor 5 Jahren
Wie und wann gibt C# Objekte wieder frei? Manuell oder automatisch via Garbage Collection?

Hallo,

wenn ich Objekte im folgenden Stil erstelle:

List<double> x = new List<double>(new double[5]);

Kümmert sich der Compiler automatisch um das Zerstören oder tritt die
Garbage Collection in Kraft oder muss man sich um die Zerstörung kümmern?
Hängt es davon ob, ob das Objekt eine Klassenmember oder Funktionsmember ist?

Ist es auch möglich, Objekte auf dem Stack zu erzeugen?

Was ist bei Instanzen einer Klasse:

Class inst = new Class(1,1,1);
5.657 Beiträge seit 2006
vor 5 Jahren

Der GarbageCollector kümmert sich automatisch um alles. Nur nicht-verwaltete Objekte, wie Schriftarten, Streams oder ähnliches mußt du selbst disposen.

Wertetypen werden auf dem Stack angelegt, Referenztypen im Heap. Das muß dich aber nicht interessieren, da alles automatisch funktioniert, das ist das Schöne an C#.

Siehe auch:
[FAQ] Wie finde ich den Einstieg in C#?
[Tipp] Schau in die Doku! - Möglichkeiten der Informationsgewinnung

Weeks of programming can save you hours of planning