c# new 左一隻object, 其實洗唔洗delete 佢?

我 new 左一隻 object, add 落個list 度, 之後clear 個list, 但O個D new 左的 objects 其實洗唔洗delete?

其實有冇呢樣野?

本帖最後由 7h1r733n 於 2017-5-24 11:55 編輯
我 new 左一隻 object, add 落個list 度, 之後clear 個list, 但O個D new 左的 objects 其實洗唔洗delete?
...
二師兄 發表於 2017-5-23 22:50


所有List Item即使你clear左... 都仲會o系memory.. 直到"garbage collect"發生.... 不過.. 除非你個object好大... 或者個List好長.. 先會手動collect.. 另外你可以考慮寫個Extension做Dispose.... 或者用Destructor去call Dispose

或者最簡單將個list變成null....  

TOP

回覆 2# 7h1r733n


    thx

TOP

我 new 左一隻 object, add 落個list 度, 之後clear 個list, 但O個D new 左的 objects 其實洗唔洗delete?
...
二師兄 發表於 2017-5-23 22:50



   上邊解左. 有garbage collection. 基本上.net 你唔使理佢.

TOP

本帖最後由 gilbertluis 於 2017-5-24 15:28 編輯

list clear 後, 隻object還存在, 沒有改變, 直到garbage collection判定為garbage, free object D memory.

如果隻object 係 IDisposable (如 file stream), clear後 resource 會未釋放 (file 仲開著), 直到garbage collection. 如要提早釋放, 要call IDisposable.Dispose (或 Close). 隻object 還存在, 不過繼續用會不正常甚至出exception.

TOP

正常唔需要, 由佢自己GC就夠
專登續個delete可能仲慢
除非你會短時間內突然要用大量memory, 驚之前未GC就開一大堆新object搞到爆ram

TOP

正常唔需要, 由佢自己GC就夠
專登續個delete可能仲慢
除非你會短時間內突然要用大量memory, 驚之前未GC就開 ...
KinChungE 發表於 2017-5-24 15:43

Windows就係...
不過有D情況例如某隻用C# o既GameEngine幾時GC... 其實都有D tricky野.. 不過呢D另類野就唔講太多了..

TOP