私はIDisposableクラスAを持っています。私はクラスBの別のメソッドMの中でAのオブジェクトを使う必要があります。メソッドMは何度も呼び出されます)。 AのローカルオブジェクトをMの中で使い、一度処分するか、Bの中にクラスレベルの静的メンバーを宣言して、アプリケーションが終了したら処分すべきですか? 私が明確でないかどうか教えてください。全体のアプリケーションライフまたはオブジェクト1つにつき1つのオブジェクト+ dispose
答えて
アプリケーションの存続期間の1つのオブジェクトはシングルトンです。特定の状況下では便利ですが、一般的には良い考えではありません。理由の詳細については、this questionを参照してください。
IDisposable
を実装するクラスは、あなたのために廃棄する世話をするusing
ステートメントの範囲内で使用することをお勧めします。
明確な例外は、1回のビジネスアクションのコンテキストで、ディスポーザブルクラスへの複数の呼び出しが必要な場合です。そのアクションは、広げすぎてusing
ステートメントにラップされません。この場合、すべての呼び出しをプライベートメンバーとしての第1の使い捨てクラスにラップします。第二のクラスが処分されるとき、それは使い捨ての私的なメンバーを処分すべきである。
Bの複数のインスタンスに由来するクラスBのメソッドMを呼び出します。 以下のようになります。 B b = new B() b.M() 私はドンを使い捨てにしています。 –
'IDisposable'を実装するクラスがアプリケーションの使用期間中保持され、' using'の内部で使用されないクラスが 'HttpClient'です。詳細は[こちら](https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/)をご覧ください。 –
@BradleyUffnerは私の心の中で最も顕著な例だったので、私は絶対的に話すことができませんでした。 –
- 1. 1つのJFrameに1つ以上のオブジェクトがあります
- 2. 1つのjsonオブジェクトに2つのオブジェクトをレンダリングします
- 3. JavaScriptを - 私は1つのオブジェクトが含ま配列持つオブジェクト
- 4. アプリケーション全体で1つのクラスで作成された静的オブジェクトの参照
- 5. 1つのオブジェクトのガベージコレクションC#
- 6. 1つのpythonオブジェクトのデュアルイテレータ
- 7. 1つのJavaScript JSONオブジェクト
- 8. アプリ全体に1つのオブジェクトにデータを保存してアクセスする方法
- 9. アプリ全体の1つのランドスケープビュー
- 10. ReactDOM.render()の1つのルート要素またはレイアウト全体?
- 11. すべての「オブジェクト」に1つのキャッシュ、または各タイプに1つのキャッシュ? - キャッシュ付きウェブアプリケーション(グアバ)
- 12. laravel 2つのオブジェクトを1つの配列にした結果
- 13. 列全体で1つまたは2つのキーワードを検索する方法
- 14. 1つのオブジェクトの3つのフォームがモーダルになります
- 15. オブジェクトのオブジェクトを1つのオブジェクトのjavascriptにする
- 16. アレイのインデックスを1つのオブジェクトにプッシュ
- 17. オブジェクトのプロパティを1つのリストオブジェクトにマイグレーション
- 18. 2つのJavaオブジェクトを1つにマージするには?
- 19. OOP - 1つのオブジェクトを他のオブジェクトに渡しますか?
- 20. オブジェクトのセットを1つのオブジェクトに結合しますか?
- 21. PHPでショッピングカート全体を1つ買う
- 22. 2つのJSONオブジェクトを1つにまとめる
- 23. 1つのオブジェクトを配列オブジェクトに変換するには?
- 24. LibGdx複数のオブジェクトの1つまたは複数のインスタンス
- 25. 2つのオブジェクトのリストをオブジェクトの1つのリストにマージする方法
- 26. なぜ1つのオブジェクトと1つの配列がありますか?
- 27. 2つのセレクタを1つのjQueryオブジェクトで結合します
- 28. Typescriptで1つのインタフェースで完全なオブジェクトを定義する
- 29. 2つ目のオブジェクトから1つのオブジェクトのメソッドにアクセスする方法
- 30. 2つのオブジェクト、1つは「関数ではない」
なぜBはAのインスタンスをそのコンストラクタで受け取り、必要に応じてMに供給できないのですか?オブジェクトは、そのインタフェースがファクトリメソッドまたはコンストラクタである場合を除いて、パブリックインターフェイスを介して提供されるリソースのクリーンアップを担当します。この場合、呼び出し元が責任を負います。 – hoodaticus
Mへの各呼び出しは、Bの新しいインスタンスを介して行われます。 –
スレッドセーフであると仮定すると、シングルトンのようなサウンドが適切です。 – hoodaticus