パターンを議論するガイド/ノート/記事のいずれも、メソッドでIDisposable
内部メンバーを設定する必要があることを示唆していません(特に、それらがメモリを大量に消費する獣である場合)。null
Dispose(bool)
内部のベンチマーク ツールをデバッグしているときに、その重要性に気づきました。以前は、内部に大きな配列を含むこのバッファがありました。以前は、ベンチマーク プログラム全体に静的バッファを使用していました。バッファーの処理が完了すると、この内部配列を解放する方法はなく、このバッファーを解放可能にすることもできません (静的であるため)。
したがって、Dispose()
が呼び出された後、破棄されるオブジェクト自体がGCによって回収されず、設定されていなくても、使用しているすべてのリソースを解放して再び利用できるようにするために、クラスはできる限りのことを行う必要があると思いますメンバーを null にすることで、GC による内部オブジェクトの収集を許可しないということは、Dispose の実装が完全ではないことを意味します。
これについてどう思いますか。