>

開発環境:
Windows10 Pro
Microsoft Visual Studio Community 2019
開発言語:
VB.NET FrameWork4.5

一度使ったObject を完全になかったものにすることは難しいようです。
そこで用意されているものが、Dispose 「廃棄」です。
Usingが使えたり、Disposeで完全開放できたりととても便利になります。
案外、知られていないようなので、一応上げておきます。

Class宣言にImplements IDisposableを指定するだけで、

Dispose可能なClassを作ることができます。

Public Class Meisi
             Implements IDisposable
''======================
''上記のようにクラスにImplements IDisposableを定義すると下記コードが追加されます。

#Region "IDisposable Support"
    Private disposedValue As Boolean ' 重複する呼び出しを検出するには
                                         ' IDisposable
        Protected Overridable Sub Dispose(disposing As Boolean)
            If Not Me.disposedValue Then
                If disposing Then
                    ' TODO: マネージ状態を破棄します (マネージ オブジェクト)。
                End If
                ' TODO: アンマネージ リソース (アンマネージ オブジェクト) を解放し、
                ' 下の Finalize() をオーバーライドします。
                ' TODO: 大きなフィールドを null に設定します。
            End If
            Me.disposedValue = True
        End Sub

        ' TODO: 上の Dispose(ByVal disposing As Boolean) にアンマネージ リソース
        ' を解放するコードがある場合にのみ、
  		' Finalize() をオーバーライドします。
        ' Protected Overrides Sub Finalize()
		' このコードを変更しないでください。クリーンアップ コードを上の
  		' Dispose(ByVal disposing As Boolean) に記述します。
        ' Dispose(False)
        ' MyBase.Finalize()
        ' End Sub

        ' このコードは、破棄可能なパターンを正しく実装できるように
        ' Visual Basic によって追加されました。
        Public Sub Dispose() Implements IDisposable.Dispose
            ' このコードを変更しないでください。クリーンアップ コードを
            ' 上の Dispose(disposing As Boolean) に記述します。
            Dispose(True)
            GC.SuppressFinalize(Me)
        End Sub
#End Region
End Class

自動的に追加されたコードのTODOのに必要な処理を追記すれば良いだけです。
なお、TODOへの追加コードがなくてもusingが使えたり、Disposeが使えます。
コーディングの幅は、広がりますね。。。。