このパターンを使用するプロジェクトに取り組んでいます
var businessEntity = new DAL().GetObject(id);
// do something with the business entity.
このパターンに従った人はいますか?
これにより、メモリ管理の問題が発生しますか? ガベージ コレクターに問題はありますか?
ありがとう
このパターンを使用するプロジェクトに取り組んでいます
var businessEntity = new DAL().GetObject(id);
// do something with the business entity.
このパターンに従った人はいますか?
これにより、メモリ管理の問題が発生しますか? ガベージ コレクターに問題はありますか?
ありがとう
それはうまく動作します。それは問題なくガベージコレクションされます。実装とオブジェクトに応じて、行の最後でコレクションのマークが付けられるか、一度businessEntity
範囲外になります。
これは非常に典型的なコードであり、ガベージ コレクターで問題が発生することはありません。
名前のないオブジェクトへの参照は、GC のルート セットにある VM スタックにあります (それ以外の場合、メソッドを呼び出すことができませんでした)。
DAL
いいえ、他に何もする必要がないか、他に何も指していない場合、GC は最終的にオブジェクトをクリアします。オブジェクトへの参照があるbusinessEntity
ため、参照が無効になるまでGCはオブジェクトに触れません。
このオブジェクトは、businessEntry によって参照されている間は有効であり、変数が範囲外になった後に収集されます。