沒有討論IDisposable
模式的指南/註釋/文章暗示應該在Dispose(bool)
方法中將內部成員設置爲null
(尤其是如果它們是內存佔用的內存)。在Dispose(bool)方法實現中,不應該將成員設置爲null嗎?
我在調試內部基準測試工具時意識到了它的重要性。過去發生的事情是,這個緩衝區裏面包含一個大數組。我們過去爲整個基準測試程序使用了一個靜態緩衝區。一旦我們完成了緩衝區,我們就無法釋放這個內部數組,我們也不能使這個緩衝區可釋放(因爲它是靜態的)。
所以,我認爲,在Dispose()
被調用後,類應該盡其所能,以便它釋放它正在使用的所有資源並使它們再次可用,即使該對象本身不被回收GC,而不是將成員設置爲null,從而不允許GC收集內部對象意味着Dispose實現並不完美。
您對此有何評論?
任何時候對釋放對象的引用都不會被釋放。 – 2009-01-19 05:03:20