Imports System.IO
Module Module1
Sub Main()
Console.WriteLine("Allocated memory " & GC.GetTotalMemory(True))
Dim c1 As New Contact("Name 1", "111-555-1111", "1@1.com")
Dim c2 As New Contact("Name 2", "222-555-1212", "2@2.com")
Dim c3 As New Contact("Name 3", "333-555-1212", "3@3.com")
c1 = Nothing ' Discard the object
GC.Collect()
Console.WriteLine("Back from first collection")
c3 = Nothing ' Discard the object
GC.Collect()
Console.WriteLine("Back from second collection -- Press Enter")
Console.WriteLine("Allocated memory " & GC.GetTotalMemory(True))
GC.SuppressFinalize(c2)
End Sub
End Module
Class Contact
Public Name As String
Public Phone As String
Public EMail As String
Sub New(ByVal ContactName As String, ByVal ContactPhone As String, ByVal ContactEmail As String)
Console.WriteLine("Name: " & ContactName & " Phone " & ContactPhone & " Email " & ContactEmail)
Name = ContactName
Phone = ContactPhone
EMail = ContactEmail
End Sub
Protected Overrides Sub Finalize()
Console.WriteLine("In Finalize for " & Name)
End Sub
End Class