ジェネリックは取り扱うデータ型を宣言時に指定することができます。
メリットはキャストしなくていいことです。
コレクションは全てオブジェクト型を持ってます。
よって取り出す時にキャストしないといけません。
コレクションには対応するジェネリックがあります。
以下対応表です。左がコレクションで右がジェネリックです。
ArrayList List
SortedList sortd
Stack Stack
Queue Queue
Hashtable Dictonary
似ていますが違うクラスですのでジェネリックの時は指定の宣言方法でデータ型を指定して宣言するということでしょうか。
インスタンス作成してからはコレクションと同じように扱えます。
List
アクセス修飾子 変数名 As New List(of データ型)
ジェネリッククラス
ジェネリッククラスの定義
アクセス修飾子 Class クラス名(of H)
end class
使用するときにインスタンスを作成時に型を指定する。
dim a as new bclass (of integer)
この場合はbクラスのHがintger型に置き換われます。
制約
インタンス作成して使用に型を自由出来ましたが
制約をつけたい時があります。
以下制約です。
NEW
Class
STRUTRE
CLASS
Interface
定義するときに制約を指定します。