1

我正在研究使用这种模式的项目

var businessEntity = new DAL().GetObject(id);
// do something with the business entity.

有没有人遵循这个模式?

这会导致任何内存管理问题吗?垃圾收集器有什么并发症吗?

谢谢

4

4 回答 4

2

它工作得很好。它将被垃圾收集就好了。根据实现和对象,在行尾将被标记为收集,或者一旦businessEntity超出范围。

于 2011-01-12T01:43:25.687 回答
1

这是非常典型的代码,不,它不会对垃圾收集器造成任何问题。

对未命名对象的引用位于 VM 堆栈中(否则无法调用该方法),该堆栈位于 GC 的根集中。

于 2011-01-12T01:43:08.800 回答
0

DAL不,如果不需要对它做任何其他事情或没有其他东西指向它,GC 最终将清除该对象。您有对该businessEntity对象的引用,因此 GC 在引用无效之前不会触及它。

于 2011-01-12T01:42:19.573 回答
-1

此对象在被 businessEntry 引用时将处于活动状态,并将在变量超出范围后的某个时间被收集

于 2011-01-12T01:42:58.097 回答