Mega Code Archive

 
Categories / VB.Net Tutorial / Class Module
 

Overloaded Properties

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