2009-05-19 21 views

Antwort

6

Methoden und Klassen werden nicht gereinigt. Objekte sind.

Wenn Sie einen statischen Verweis auf ein Objekt haben, wird das fragliche Objekt bereinigt, sobald der statische Bereich überschritten wird (d. H. Wenn die Anwendungsdomäne entladen wird).

0

Soweit ich weiß passiert das, wenn die AppDomain gesammelt wird (das ist, wenn Ihre Anwendung geschlossen ist).

-1

Nein. Statische Klassen werden erst entfernt, wenn die Anwendungsdomäne geschlossen ist.

0

Wenn Sie statische Felder verweisen, dann nein, es besteht keine Notwendigkeit. Sie bleiben definitionsgemäß bis zum Ende des Prozesses (oder AppDomain) erhalten.

Wenn Sie lokalen Variable durch Code in der statischen Methode zugeordnet beziehen werden dann ja Heap-Speicher wird von der GC in Ordnung gebracht wird

1

Duplikat: Garbage collection of static members

Auch kann ich erwähnen, wenn OBJECT seine gesammelt. Methoden und Klassen werden nicht gesammelt.

public class TestClass 
{ 
    public static Hashtable h_object = new Hashtable(); 
} 

TestClass.h_object = null; 
//* here it has no more references and it will be added to GC. 
0

Statisch bedeutet, dass nur ein Objekt dieses Typs vorhanden ist. Bestes Beispiel ist die Hauptmethode. es existiert nur einmal. also sammelt die Garbage Collection diese Objekte auch automatisch, aber nicht automatisch am Ende des Programms.

außer dem was Lukas Šalkauskas mit "some_object" sagte. "Some_other_obj" = null;