如何:使用泛型类(Visual Basic)

采用 类型参数 的类称为 泛型类。 如果使用泛型类,可以通过为其中每个参数提供类型参数来从该类生成构造类。 然后,可以声明构造类类型的变量,并且可以创建构造类的实例并将其分配给该变量。

除了类,还可以定义和使用泛型结构、接口、过程和委托。

以下过程采用 .NET Framework 中定义的泛型类,并从中创建一个实例。

使用采用类型参数的类

  1. 在源文件的开头,包括 Imports 语句(.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
    

另请参阅