VB.Net Tutorial/Collections/DictionaryBase

Материал из VB Эксперт
Перейти к: навигация, поиск

Extends DictionaryBase to create custom Collection

<source lang="vbnet">Imports System.Collections Imports System.Collections.Generic Imports System.Collections.Specialized public class Test

  public Shared Sub Main
       Dim dict As New EmployeeDictionary
       dict.Add("123-45-6789", New Employee("A", "A"))
       dict.Add("111-22-3333", New Employee("B", "B"))
       dict.Add("365-76-5476", New Employee("C", "C"))
       dict.Add("832-77-6847", New Employee("D", "D"))
       Dim emp As Employee = dict.Item("365-76-5476")
       Console.WriteLine(emp.ToString)
  End Sub
  

End class Public Class Employee

   Private m_FirstName As String
   Private m_LastName As String
   Public Sub New(ByVal first_name As String, ByVal last_name As String)
       m_FirstName = first_name
       m_LastName = last_name
   End Sub
   Public Overrides Function ToString() As String
       Return m_FirstName & " " & m_LastName
   End Function

End Class Public Class EmployeeDictionary

   Inherits System.Collections.DictionaryBase
   Public Sub Add(ByVal new_key As String, ByVal new_employee As Employee)
       Dictionary.Add(new_key, new_employee)
   End Sub
   Default Public Property Item(ByVal key As String) As Employee
       Get
           Return DirectCast(Dictionary.Item(key), Employee)
       End Get
       Set(ByVal Value As Employee)
           Dictionary.Item(key) = Value
       End Set
   End Property
   Public ReadOnly Property Keys() As ICollection
       Get
           Return Dictionary.Keys
       End Get
   End Property
   Public ReadOnly Property Values() As ICollection
       Get
           Return Dictionary.Values
       End Get
   End Property
   Public Function Contains(ByVal key As String) As Boolean
       Return Dictionary.Contains(key)
   End Function
   Public Sub Remove(ByVal key As String)
       Dictionary.Remove(key)
   End Sub

End Class</source>

C C