方法 : ジェネリック クラスを使用する
更新 : 2007 年 11 月
型パラメータを受け取るクラスをジェネリック クラスと呼びます。ジェネリック クラスを使用する場合、各型パラメータに型引数を指定することによって、ジェネリック クラスから構成されるクラスを生成できます。そして、構成されるクラスの型の変数を宣言し、構成されるクラスのインスタンスを作成して、その変数を割り当てることができます。
クラスの他に、ジェネリックな構造体、インターフェイス、プロシージャ、およびデリゲートも定義して使用できます。
次のプロシージャは .NET Framework で定義されたジェネリック クラスを受け取り、そこからインスタンスを作成します。
型パラメータを受け取るクラスを使用するには
ソース ファイルの先頭に Imports ステートメント (.NET 名前空間および型) をインクルードして、System.Collections.Generic 名前空間をインポートします。これにより、System.Collections.Queue などのキュー クラスと区別するために完全に修飾しなくても、System.Collections.Generic.Queue<T> クラスを参照できます。
通常の方法でオブジェクトを作成します。ただし、クラス名のすぐ後に (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
参照
処理手順
方法 : 複数のデータ型に同一の機能を提供できるクラスを定義する