簡體   English   中英

傳遞給IDisposable對象的引用的類是否也是IDisposable並在處理時將它們設置為null?

[英]Should classes that are passed references to IDisposable objects be IDisposable as well and set them to null when disposed?

我認為問題就是這么說的。

謝謝。

如果對象擁有該資源,它們應該實現IDisposable 通常沒有必要將事物設置為null,盡管它沒有任何傷害。

如果您擁有該資源,那么顯然您不應該將其丟棄,並且您不需要實現IDisposable 根據我的經驗,我有一個一次性資源的成員變量是相對罕見的,我在課堂上沒有...

“持有參考”並不是真正的標准。 當一個對象邏輯上“擁有”一個IDiposable對象然后是,它應該實現IDisposable來為所有擁有的Disposable對象調用Dispose。
但它不應該實現析構函數(Finalizer)。

設置為null是沒有必要的,但應該調用.Dispose()對所有這些對象的父類的.Dispose()

編輯:如果您的班級負責創建這些對象。

這是一個很好的做法。 當調用這樣一個類時,最好在所有引用的對象上調用Dispose。

是的,如果引用屬於類,它們應該是FxCop / MS代碼分析,甚至檢查它。

如果您的班級創建了一次性物品,那么您的班級負責清理它們。 由於你的課程不知道什么時候要清理,除非告訴它(我不計算析構函數),這是使你的類實現IDisposable的最簡單方法。

如果您的類使用但不創建一次性對象,那么您應該將清理留給這些對象的創建者。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM