2013-10-09 72 views
0

我目前想實現我的我的一些物體的第一處置,並想知道如果它是一個壞主意,經過每次反射所有屬性,只是將它們設置爲空處置對象?與清理通過反射

回答

1

實施IDisposable並不意味着你已經將所有字段設置爲null。當它們不能從根對象到達時,GC會照顧它。

和設置null不會做任何事情還是物體會在內存中,直至GC聲明它是不具有管理的任何引用。

IMO你不能看到一個全面的答案不止這Proper use of the IDisposable interface

設置爲null有助於只有一個管理參考只剩時,你不需要它,雖然,但你必須保持密封型活着那麼你會設置參考null。否則,如果封裝類型本身無法訪問,那麼設置null沒有任何意義。

0

是的,這是一個壞主意。

首先,您的一些屬性可能是實現IDisposable接口的類,因此您必須首先調用Dispose方法。

然後,如果你的屬性之一是取決於COM組件或使用一些類,你必須正確地處理它,或者你將結束與內存泄漏