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