Mega Code Archive

 
Categories / VB.Net Tutorial / Class Module
 

Shared variable and Shared Property

Module Tester    Sub Main()       Console.WriteLine("Employees before instantiation: " & _          Employee.Count)       Dim employee1 As Employee = New Employee("S", "B")       Dim employee2 As Employee = New Employee("B", "J")       Console.WriteLine("Employee.Count: " & Employee.Count)       employee1 = Nothing       employee2 = Nothing       System.GC.Collect() ' request garbage collection              Console.WriteLine("Employee.Count: " & Employee.Count)           End Sub ' Main End Module Class Employee    Inherits Object    Private mFirstName As String    Private mLastName As String    Private Shared mCount As Integer    Public Sub New(ByVal firstNameValue As String, _       ByVal lastNameValue As String)       mFirstName = firstNameValue       mLastName = lastNameValue       mCount += 1        Console.WriteLine _          ("Employee object constructor: " & mFirstName & _          " " & mLastName)    End Sub ' New    Protected Overrides Sub Finalize()       mCount -= 1 ' decrement mCount, resulting in one fewer object       Console.WriteLine _          ("Employee object finalizer: " & mFirstName & _          " " & mLastName & "; count = " & mCount)    End Sub ' Finalize    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 Employees before instantiation: 0 Employee object constructor: S B Employee object constructor: B J Employee.Count: 2 Employee object finalizer: B J; count = 1 Employee object finalizer: S B; count = 0 Employee.Count: 0