我有一個變量或數組,我不再需要它了。如何摧毀他們? 對不起,沒有問題。在C中銷燬變量或數組#
12
A
回答
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
另外請注意,你不這樣做只有當你明確地想釋放一個對象而不釋放它的父對象或者如果引用是一個靜態字段時,每次都需要這樣做。對於只有局部(方法)變量的類或靜態字段的字段,也不需要釋放對象。
1
垃圾收集器是要命的,但是當垃圾收集器收集的對象不再被引用的對象被有效破壞:後... 所以,如果你需要處理的immediateli對象,以便自毀代碼被稱爲,您需要實施IDisposable接口,並在解除引用對象之前調用Dispose方法。
相關問題
- 1. 在C#中銷燬靜態變量/ ASP.NET
- 2. 銷燬ruby中的變量
- 3. 在clojure銷燬變量
- 4. C++局部變量銷燬順序
- 5. Powershell splat銷燬變量
- 6. 銷燬會議變量註銷
- 7. 線程被銷燬時,變量是否被銷燬?
- 8. 我的C++函數不應該銷燬變量
- 9. 在C++中釋放()或工廠銷燬函數
- 10. C++堆棧中分配變量不破壞(/銷燬?)
- 11. 如何銷燬數組的數組
- 12. Backbone.js發送變量與銷燬/刪除
- 13. PHP變量何時自動銷燬?
- 14. 如何最終化/銷燬類變量
- 15. 保存變量銷燬不起作用
- 16. Php會話變量銷燬此說明
- 17. C++銷燬對象
- 18. 自動變量銷燬之前或之後創建的C++返回值?
- 19. C - 爲什麼我的變量沒有被銷燬?
- 20. 在Openmp中銷燬線程(C++)
- 21. 在C#中銷燬結構對象?
- 22. 銷燬或關閉HttpClient Android
- 23. 如何在ZF2中手動銷燬zfcuser會話變量?
- 24. 在另一個應用程序中銷燬會話變量
- 25. 在php中,如何銷燬會話變量
- 26. 在Codeigniter應用程序中銷燬會話變量的Firebug
- 27. 爲什麼我不能在Ruby中銷燬這個變量?
- 28. Laravel 5註銷或會話銷燬
- 29. 在C++中通常調用一個塊時如何銷燬局部變量?
- 30. 如何在matlab中銷燬變量時,如何銷燬mex文件中的內存?
非常感謝你! – Alexry 2010-04-28 07:31:13
請注意,您不需要將引用設置爲'null' - JIT/Runtime將共同確定代碼將不再使用該引用的位置;在那個時候它已經死亡並且可以收回。 Google針對MSDN博客上的'GC.KeepAlive()'描述以及SO的詳細信息。 – 2010-04-28 07:52:27
@亞歷山大,您的歡迎,也就像@邁克爾伯爾所說,它在* .Net中非常罕見*,需要手動清空變量,您通常不需要這樣做。 – 2010-04-28 07:54:57