2009-05-19 157 views

回答

6

方法和類不清理。對象是。

如果您有一個對象的靜態引用,則一旦靜態超出範圍(即AppDomain被卸載)時,將清除所討論的對象。

0

據我所知,AppDomain被收集時(這是您的應用程序關閉時)發生。

-1

否。靜態類將不會被刪除,直到您的應用程序域被關閉。

0

如果你在引用靜態字段,那麼沒有,沒有必要。它們根據定義一直保留到進程結束(或AppDomain)。

如果你指的通過代碼靜態方法則是堆分配的內存將通過GC來收拾分配的局部變量

1

重複:Garbage collection of static members

我也可以提,當對象將被集。方法和類不會被收集。

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

靜態意味着只有一個這種類型的對象。最好的例子是主要的方法。它只存在一次。因此垃圾收集也會收集這些對象,但不會自動在程序中,只是在最後。

除了LukasŠalkauskas用「some_object」表示的內容。「some_other_obj」= null;