如何:使用泛型类 (Visual Basic)
带有“类型参数”的类称为“泛型类”。 如果使用泛型类,则可为每个这样的参数提供“类型变量”,从而从泛型类生成一个“构造类”。 之后可以声明类型为构造类的变量,创建构造类的实例,并将它分配给该变量。
除了类之外,您还可以定义和使用泛型结构、接口、过程和委托。
下面的过程使用在 .NET Framework 中定义的泛型类,并从它创建实例。
使用带有类型参数的类
在源文件开头,包含用于导入 System.Collections.Generic 命名空间的 Imports 语句(.NET 命名空间和类型)。 这样,您就能引用 System.Collections.Generic.Queue<T> 类,而不必为了将它与其他队列类(如 System.Collections.Queue)区分开而对它进行完全限定。
以正常方式创建对象,但在类名后紧跟 (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
请参见
任务
如何:定义可对不同数据类型提供相同功能的类 (Visual Basic)
参考
概念
Visual Basic 中的泛型类型 (Visual Basic)