Class Module VB.Net Tutorial

Imports System
Imports System.Collections
Class Employee
  Public Name As String
  Public Wage As Double
  Public ID As Integer
  Public Sub New(ByVal N As String, ByVal W As Double, ByVal I As Integer)
     Name = N
     Wage = W
     ID = I
  End Sub
  Public Sub PayRaise(ByVal Amount As Double)
    Wage += Amount
  End Sub
  Public Overrides Function ToString() As String
    Return "[" & ID & "]" & " " & Name & " " & Wage
  End Function
End Class
Class EmployeeList
  Private idTable As Hashtable
  Private nameTable As Hashtable
  
  Public Sub New()
    idTable = New Hashtable()
    nameTable = New Hashtable()
  End Sub
  Public Property Employee(ByVal ID As Integer) As Employee
    Get
      Return idTable(ID)
    End Get
    Set(ByVal Value As Employee)
      idTable(ID) = Value
    End Set
  End Property
  Public Property Employee(ByVal Name As String) As Employee
    Get
      Return nameTable(name)
    End Get
    Set(ByVal Value As Employee)
      nameTable(Name) = Value
    End Set
  End Property
End Class
Module Test
  Sub Main()
    Dim EmployeeList As New EmployeeList()
    EmployeeList.Employee(1) = New Employee("A", 250, 100)
    EmployeeList.Employee(2) = New Employee("B", 350, 200)
    EmployeeList.Employee(3) = New Employee("C", 170, 300)
    EmployeeList.Employee(4) = New Employee("D", 165, 400)
    EmployeeList.Employee("N") = New Employee("N", 50000, 500)
    EmployeeList.Employee("C") = New Employee("C", 60000, 600)
    Dim ID As Integer = 1
    Dim Who As Employee
    Who = EmployeeList.Employee(ID)
    If Who Is Nothing Then
      Console.WriteLine("Unrecognized ID: {0}", ID)
    Else
      Console.WriteLine("Employee details: {0}", Who)
    End If
    Dim Name As String = "N"
    Who = EmployeeList.Employee(Name)
    If Who Is Nothing Then
      Console.WriteLine("Unrecognized name: {0}", Name)
    Else
      Console.WriteLine("Employee details: {0}", Who)
    End If
  End Sub
End Module
Employee details: [100] A 250
Employee details: [500] N 50000