Class Shared Variable : Shared « Class « VB.Net





Class Shared Variable

Class Shared Variable
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

           
       










Related examples in the same category

1.Shared Method DemoShared Method Demo
2.Use Shared method to construct ObjectUse Shared method to construct Object
3.Class with all shared Member variablesClass with all shared Member variables
4.User Shared variable to count instance numberUser Shared variable to count instance number