2010-04-28 86 views

回答

2

.NET中的Garbage Collector將爲您做到!但實際上,它可能取決於你在寫「你不需要」變量時的意思

11

你沒有。只要讓引用超出範圍,它就會自動變爲garbage-collected

1

.NET有一個內置的垃圾收集器。在不需要的時候停止引用數組或變量就足夠了。不需要明確的銷燬電話。

5

在.NET或爲此事你只需釋放你持有到該對象的所有引用任何垃圾回收的語言,垃圾收集器將最終收集它例如:

int[] arr = new int[20]; 
    .... 
    // when no longer needed set all references to null 
    arr = null; 
    // also creating a new object will release the old one automatically if there are no more references to it 
    arr = new int[40]; // old array will be garbage collected 

另外請注意,你不這樣做只有當你明確地想釋放一個對象而不釋放它的父對象或者如果引用是一個靜態字段時,每次都需要這樣做。對於只有局部(方法)變量的類或靜態字段的字段,也不需要釋放對象。

+0

非常感謝你! – Alexry 2010-04-28 07:31:13

+2

請注意,您不需要將引用設置爲'null' - JIT/Runtime將共同確定代碼將不再使用該引用的位置;在那個時候它已經死亡並且可以收回。 Google針對MSDN博客上的'GC.KeepAlive()'描述以及SO的詳細信息。 – 2010-04-28 07:52:27

+1

@亞歷山大,您的歡迎,也就像@邁克爾伯爾所說,它在* .Net中非常罕見*,需要手動清空變量,您通常不需要這樣做。 – 2010-04-28 07:54:57

1

垃圾收集器是要命的,但是當垃圾收集器收集的對象不再被引用的對象被有效破壞:後... 所以,如果你需要處理的immediateli對象,以便自毀代碼被稱爲,您需要實施IDisposable接口,並在解除引用對象之前調用Dispose方法。