Development VB.Net

Imports System
Public Class MainClass
    Shared Sub Main(ByVal args As String())
      Console.WriteLine("Students before instantiation: " & Student.Count)
      Dim student1 As Student = New Student("A", "B")
      Dim student2 As Student = New Student("C", "D")
      ' output of student2 after instantiation
      Console.WriteLine("Students after instantiation: " & vbCrLf & _
         "via Student.Count: " & Student.Count)
      ' display name of first and second student
      Console.WriteLine(vbCrLf & "Students 1: " & _
         student1.FirstName & " " & student1.LastName & _
         vbCrLf & "Student 2: " & student2.FirstName & " " & _
         student2.LastName)
      ' mark student1 and student2 for garbage collection
      student1 = Nothing
      student2 = Nothing
      System.GC.Collect() ' request garbage collection
      
    End Sub
End Class
' Class Student uses Shared variable.
Class Student
   Inherits Object
   Private mFirstName As String
   Private mLastName As String
   ' number of objects in memory
   Private Shared mCount As Integer
   ' Student constructor
   Public Sub New(ByVal firstNameValue As String, _
      ByVal lastNameValue As String)
      mFirstName = firstNameValue
      mLastName = lastNameValue
      mCount += 1 ' increment shared count of students
      Console.WriteLine _
         ("Student object constructor: " & mFirstName & _
         " " & mLastName)
   End Sub ' New
   ' finalizer method decrements Shared count of students
   Protected Overrides Sub Finalize()
      mCount -= 1 ' decrement mCount, resulting in one fewer object
      Console.WriteLine _
         ("Student object finalizer: " & mFirstName & _
         " " & mLastName & "; count = " & mCount)
   End Sub ' Finalize
   ' return first name
   Public ReadOnly Property FirstName() As String
      Get
         Return mFirstName
      End Get
   End Property ' FirstName
   ' return last name
   Public ReadOnly Property LastName() As String
      Get
         Return mLastName
      End Get
   End Property ' LastName
   ' property Count
   Public Shared ReadOnly Property Count() As Integer
      Get
         Return mCount
      End Get
   End Property ' Count
End Class ' Student