IDisposableをチェーン
-
20-09-2019 - |
質問
私はIDisposableを持つオブジェクトを実装する場合は、そのオブジェクトを所有するすべてのオブジェクトは、彼らがリリースする他のリソースを持っていない場合でも、同様にそれを実装する必要がありますか?
解決
はい。あなたのメンバ変数が正しく配置され得るようにするために、それらを処分する必要があります。
あなたがIDisposableインタークラスをカプセル化するときはいつでも、あなたのクラスIDisposableを行う必要があります。あなたのDisposeメソッドでは、あなたのカプセル化されたリソースを配置する必要があります。基本的には、彼らにあなたがネイティブリソースを扱うのと同じように扱います。
他のヒント
あなたは決定論処分をしたい場合は、
、最終的にいくつかのクライアントは、廃棄を呼び出すか、「使用」ブロック内のコールをラップする必要があります。あなたのオブジェクトにトリクルダウンするには、その所有者が同様にIDisposableインターを実装することを必要とするかもしれません。
あなたが任意の時間に依存するリソースを解放するためにガベージコレクタに頼るべきではありません。
ファイナライザ(デストラクタを)
はい、所有しているクラスはIDisposableインターを実装する必要がありますが、それは(必要はありません)必要はありません。
NP、彼らはちょうど彼らが適切にそのオブジェクトを配置を確認するために「使用」ステートメントを使用して、そのクラスを使用する必要がありますが、それらのオブジェクト自体はIDisposableインターを実装する必要はありません。
所属していません StackOverflow