Class Module VB.Net Tutorial

Imports System
Imports System.Collections
Class EmployeeList
  Private mEmployees As Hashtable
  Private mLevels As Hashtable
  Public Sub New()
    mEmployees = New Hashtable()
    mLevels = New Hashtable()
  End Sub
  Public Default Property Employee(ByVal ID As Integer) As Employee
    Get
      Dim theObject As Object
      theObject = mEmployees(ID)
      Return CType(theObject, Employee)
    End Get
    Set(ByVal Value As Employee)
      mEmployees(ID) = Value
    End Set
  End Property
  Public Property Level(ByVal country As String) As String
    Get
      Dim theObject As Object
      theObject = mLevels(country)
      Return CType(theObject, String)
    End Get
    Set(ByVal Value As String)
      mLevels(country) = Value
    End Set
  End Property
End Class
Class Employee
  Private mName As String
  Private mWage As Double
  Private mID As Integer
  Public Sub New(ByVal name As String, ByVal wage As Double,ByVal id As Integer)
    mName = name
    mWage = wage
    mID = id
  End Sub
  Public Property Name() As String
    Get
      Return mName
    End Get
    Set(ByVal Value As String)
      mName = Value
    End Set
  End Property
  Public ReadOnly Property Wage() As Double
    Get
      Return mWage
    End Get
  End Property
  Public ReadOnly Property ID() As Integer
    Get
      Return mID
    End Get
  End Property
  Public Sub PayRise(ByVal amount As Double)
    mWage += amount
  End Sub
  Public Overrides Function ToString() As String
    Return "[" & mID & "] " & mName & " " & mWage
  End Function
End Class
Module DefaultProperty
  Sub Main()
    Dim employer As New EmployeeList()
    employer(1) = New Employee("A", 25, 1)
    employer(2) = New Employee("J", 35, 2)
    employer(3) = New Employee("T", 17, 3)
    employer(4) = New Employee("E", 16, 4)
    employer.Level("AA") = "A"
    employer.Level("BB") = "B"
    employer.Level("CC") = "C"
    employer.Level("DD") = "D"
    employer.Level("EE") = "E"
    employer.Level("FF") = "F"
    Dim country As String
    country = "AA"
    Dim city As String
    city = employer.Level(country)
    If city Is Nothing Then
      Console.WriteLine("No office in {0}", country)
    Else
      Console.WriteLine("Level in {0}: {1}", country, city)
    End If
  End Sub
End Module
Level in AA: A