方法: ジェネリック クラスを使用する (Visual Basic)

型パラメーターを受け取るクラスをジェネリック クラスと呼びます。ジェネリック クラスを使用する場合、各型パラメーターに型引数を指定することによって、ジェネリック クラスから構成されるクラスを生成できます。そして、構成されるクラスの型の変数を宣言し、構成されるクラスのインスタンスを作成して、その変数を割り当てることができます。

クラスに加え、ジェネリックの構造体、インターフェイス、プロシージャ、およびデリゲートを定義および使用できます。

次のプロシージャは .NET Framework で定義されたジェネリック クラスを受け取り、そこからインスタンスを作成します。

型パラメーターを受け取るクラスを使用するには

  1. ソース ファイルの先頭に Imports ステートメント (.NET 名前空間および型) をインクルードして、System.Collections.Generic 名前空間をインポートします。これにより、System.Collections.Queue などのキュー クラスと区別するために完全に修飾しなくても、System.Collections.Generic.Queue<T> クラスを参照できます。

  2. 通常の方法でオブジェクトを作成します。ただし、クラス名のすぐ後に (Oftype) を指定する必要があります。

    次の例では、同じ (System.Collections.Generic.Queue<T>) クラスを使用して、異なるデータ型の項目を格納する 2 つのキュー オブジェクトを作成します。各キューの末尾に項目が追加された後、各キューの頭から項目が削除され、表示されます。

    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)

関連項目

Of 句 (Visual Basic)

Imports ステートメント (.NET 名前空間および型)

概念

Visual Basic におけるデータ型

Visual Basic におけるジェネリック型 (Visual Basic)

共通言語仕様

その他の技術情報

反復子 (C# および Visual Basic)