当一个对象似乎超出范围但由于其他类仍然持有对它的引用时可能仍然存在时,我有一个关于垃圾收集的问题。请仔细阅读下面的代码。谢谢。
Public Class MainForm
Private Sub Work
Dim Obj1 as New DataTable
Dim Obj2 as New DataTable
Helper.TestMethod1(Obj1)
Helper.TestMethod2(Obj2)
End Sub
End Class
Public Class Helper
Private Shared Obj1Reference as Object
Public Shared Sub TestMethod1 (ByVal obj1Ref as Object)
Obj1Reference = obj1Ref
End Sub
Public Shared Sub TestMethod2 (ByVal obj2Ref as Object)
'Do Something with obj2Ref
End Sub
End Class
在 Work 方法退出后,Obj1 和 Obj2 是否都会被放入垃圾回收队列中。据我了解,Obj2 已放入队列,但 Obj1 未放入队列,因为静态助手类持有对 Obj1 的引用。如果我错了,请纠正我。