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