Use IDisposable
Imports System Imports System.Runtime.InteropServices Imports System.Drawing Imports System.ComponentModel Imports System.Windows.Forms Imports System.IO Imports System.Xml.Serialization Public Class MainClass Shared Sub Main(ByVal args As String()) Dim i As Integer = 0 i += 1 Dim obj As New Named("Dispose " & i) obj.Dispose() End Sub End Class Public Class Named Implements IDisposable Public Name As String Public Sub New(ByVal new_name As String) Name = new_name End Sub ' Free resources. Protected Overrides Sub Finalize() Dispose() End Sub ' Display our name. Public Sub Dispose() Implements System.IDisposable.Dispose Static done_before As Boolean = False If done_before Then Exit Sub done_before = True Console.WriteLine(Name) End Sub End Class
1. | Dispose - called when we need disposing |