Практическое руководство. Использование универсального класса (Visual Basic)

Класс, принимающий параметры типа, называется универсальным. При использовании универсального класса из него можно создать сконструированный класс, указав аргумент типа для каждого из этих параметров. После этого можно объявить переменную типа сконструированного класса, а также создать экземпляр такого класса и присвоить его этой переменной.

Помимо классов, можно определять и использовать универсальные структуры, интерфейсы, процедуры и делегаты.

Следующая процедура принимает универсальный класс, определенный в платформа .NET Framework, и создает экземпляр из него.

Использование класса, который принимает параметр типа

  1. В начале исходного файла добавьте инструкцию Import (пространство имен и тип.NET) для импорта System.Collections.Generic пространства имен. Это позволяет ссылаться на класс System.Collections.Generic.Queue<T> без полного определения, чтобы его можно отличить от других классов очереди, таких как System.Collections.Queue.

  2. Создайте объект обычным способом, но добавьте (Of type) сразу после имени класса.

    Следующий пример использует тот же класс (System.Collections.Generic.Queue<T>) для создания двух объектов очереди, содержащих элементы различных типов данных. Он добавляет элементы в конец каждой очереди и затем удаляет и отображает элементы из начала каждой очереди.

    Public Sub usequeue()
      Dim queueDouble As New System.Collections.Generic.Queue(Of Double)
      Dim queueString As New System.Collections.Generic.Queue(Of String)
      queueDouble.Enqueue(1.1)
      queueDouble.Enqueue(2.2)
      queueDouble.Enqueue(3.3)
      queueDouble.Enqueue(4.4)
      queueString.Enqueue("First string of three")
      queueString.Enqueue("Second string of three")
      queueString.Enqueue("Third string of three")
      Dim s As String = "Queue of Double items (reported length " &
          CStr(queueDouble.Count) & "):"
      For i As Integer = 1 To queueDouble.Count
        s &= vbCrLf & CStr(queueDouble.Dequeue())
      Next i
      s &= vbCrLf & "Queue of String items (reported length " &
          CStr(queueString.Count) & "):"
      For i As Integer = 1 To queueString.Count
        s &= vbCrLf & queueString.Dequeue()
      Next i
      MsgBox(s)
    End Sub
    

См. также