Imports System
Imports System.Collections
Class EmployeeList
Private mEmployees As Hashtable
Public Sub New()
mEmployees = 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
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 Test
Sub Main()
Dim employer As New EmployeeList()
employer.Employee(1) = New Employee("A", 25000, 1)
employer.Employee(2) = New Employee("J", 35000, 2)
employer.Employee(3) = New Employee("T", 17000, 3)
employer.Employee(4) = New Employee("E", 16500, 4)
Dim ID As Integer
ID = 2
Dim who As Employee
who = employer.Employee(ID)
If who Is Nothing Then
Console.WriteLine("Unrecognized ID: {0}", ID)
Else
Console.WriteLine("Employee details: {0}", who)
End If
End Sub
End Module
Employee details: [2] J 35000