Class Module VB.Net Tutorial

Imports System
Imports System.Collections
Class Employee
  Private MName As String
  Private MWage As Double
  Public Sub New(ByVal Name As String, ByVal Wage As Double)
    MName = Name
    MWage = Wage
  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 Sub PayRaise(ByVal Amount As Double)
    MWage += Amount
  End Sub
  Public Overrides Function ToString() As String
    Return MName & " " & MWage
  End Function
End Class
Class EmployeeList
  Private MEmployees As Hashtable
  Public Sub New()
    MEmployees = New Hashtable()
  End Sub
  Public Property Employee(ByVal Location As String, ByVal ID As Integer) As Employee
    Get
      Dim Key As String = Location + ID.ToString()
      Return MEmployees(Key)
    End Get
    Set(ByVal Value As Employee)
      Dim Key As String = Location + ID.ToString()
      MEmployees(Key) = Value
    End Set
  End Property
End Class
Module Test
  Sub Main()
    Dim EmployeeList As New EmployeeList()
    EmployeeList.Employee("A", 1) = New Employee("S", 2)
    EmployeeList.Employee("B", 2) = New Employee("C", 3)
    EmployeeList.Employee("C", 3) = New Employee("B", 1)
    EmployeeList.Employee("D", 4) = New Employee("A", 1)
    Dim Who As Employee
    Who = EmployeeList.Employee("Boston", 200)
    Console.WriteLine("{0}", Who)
    Who = EmployeeList.Employee("Geneva", 200)
    Console.WriteLine("{0}", Who)
  End Sub
End Module