Overloaded Properties : Property « 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








6.38.Property
6.38.1.Define and use a Property
6.38.2.Default Property
6.38.3.Two properties
6.38.4.Do calculation in Property getter
6.38.5.Properties with Getter and Setter
6.38.6.Shared variable and Shared Property
6.38.7.Class with a property that performs validation
6.38.8.ReadOnly property
6.38.9.MultiKey Properties
6.38.10.Overloaded Properties
6.38.11.Shared Properties
6.38.12.Single Indexed Property
6.38.13.Loop through two dimensional array with GetUpperBound and GetLowerBound
6.38.14.Use Property to set private data
6.38.15.Do data check in property set
6.38.16.Convert data type in property set
6.38.17.Throw Exception in Property setting
6.38.18.Change value in Property getter
6.38.19.Friend Property
6.38.20.Readable and Writable
6.38.21.Person with FirstName and LastName Property
6.38.22.Define a class with one property and retrieves the name and type of the property