私はデザインがありますが、ガベージコレクションが正しく行われるかどうかはわかりません。
私はいくつかの魔法のりんごを持っていて、いくつかはおいしいです。ガーベッジコレクションと参照C#
私は辞書があります:BasketList = Dictionary <basketID,Basket>
(バスケットのリスト)です。
各Basket
オブジェクトは、その中に単一Apple
各Basket
格納オブジェクトAppleSeperation
への参照を有します。 AppleSeperation
は、2つの辞書、YummyApples = <basketID,Apple>
、BadApples = Dictionary<basketID,Apple>
を保存しているので、リンゴがどこにあるのかがわかります。
Apple
オブジェクトストアBasketsImIn = Dictionary<ID,Basket>
は、バスケットと店舗、およびApple in Basketを指します。
私はBasketList
からバスケットを削除し、私は、ガベージコレクションが適切に起こるのだろう、BadApples
および/またはYummyApples
からアップルを削除することを確認した場合に私の質問は、ある、または転がっいくつかの厄介な参照があるでしょうか?
「乱雑な参照」を定義します。ルールは単純です:オブジェクトへの参照がなくなると、GCは最終的にそれを取り除きます。 –
メモリプロファイラで確認するのはどうですか? – Nikolay
なぜ、おいしくない、悪くない各バスケットの中にリンゴを保管していますか?とにかく、BadApplesとYummyApplesが1つのバスケットからのみ参照され、そのバスケットがもはや参照されていない場合、それらは収集されるべきです。 –