我正在研究使用这种模式的项目
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
超出范围。
这是非常典型的代码,不,它不会对垃圾收集器造成任何问题。
对未命名对象的引用位于 VM 堆栈中(否则无法调用该方法),该堆栈位于 GC 的根集中。
DAL
不,如果不需要对它做任何其他事情或没有其他东西指向它,GC 最终将清除该对象。您有对该businessEntity
对象的引用,因此 GC 在引用无效之前不会触及它。
此对象在被 businessEntry 引用时将处于活动状态,并将在变量超出范围后的某个时间被收集