オブジェクトがスコープから外れているように見えても、他のクラスがまだそのオブジェクトへの参照を保持しているため、ガベージコレクションが存続する可能性がある場合に、ガベージコレクションについて質問があります。以下のコードをご覧ください。ありがとう。
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の両方がガベージコレクションキューに入れられますか。私の理解では、静的ヘルパークラスがObj1への参照を保持しているため、Obj2はキューに入れられますが、Obj1には入れられません。私が間違っている場合は訂正してください。