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

型パラメーター を受け取るクラスは、 ジェネリック クラスと呼ばれます。 ジェネリック クラスを使用している場合は、このパラメーターのそれぞれに 型引数 を入力することで、ジェネリック クラスから 構築済みクラス を生成することができます。 これで、構築済みクラス型の変数を宣言し、構築済みクラスのインスタンスを作成して、その変数に割り当てることができます。

クラスに加えて、ジェネリックの構造体、インターフェイス、プロシージャ、デリゲートを定義して利用することもできます。

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

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

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

  2. 通常の方法でオブジェクトを作成し、クラス名の直後に (Of type) を追加します。

    次の例では、同じクラス (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
    

関連項目