次のページへジェネリック・クラスの記述方法ここで簡単に、ジェネリック・クラスの記述方法についても見ておきましょう。以下は、Listジェネリック・クラスの仕様をまねたMyListジェネリック・クラスの実装例です。Addメソッドとインデクサだけを実装しています。格納する要素が1000を超えた場合にはエラーとなる。インデクサでのインデックス番号の範囲チェックも行っていない。このように、ジェネリック・クラスの記述では、型パラメータを「T」とした場合、Tというクラスがあるかのようにフィールドやメソッドを記述していきます。これまでに「T」の部分が具体的なクラス名になっているようなクラスを記述されたことがあるかもしれません。「T」の部分がすべて「Employee」になっているようなEmployeeクラス専用のコレクション・クラスなどです。ジェネリックの導入により、その「T」部分が自動的に置き換えられる、汎用的なコレクション・クラスが記述可能となったわけです。型パラメータである「T」は単なるパラメータの名前であり、メソッドのパラメータと同じで、好きな名前を付けることができます。名前付けのガイドラインは用意されています*。型パラメータが1つだけの場合は「T」がよく用いられます。*「型パラメータの名前付けのガイドライン」を参照してください。念のために、上記のMyList<T>クラスを、文字列型とDateTime構造体で使用したサンプル・プログラムを次に示しておきます。型パラメータの制約ジェネリック・クラスを記述するとき、型パラメータに指定される型を制限する必要が出てくる場合があります。型パラメータの型(以下、Tと省略)のオブジェクトのメソッドを呼び出すようなコードを記述する場合、Tには必ずそのメソッドが実装されていなければ困ります。T()する)ようなコードを記述する場合には、Tにパブリックな(パラメータを持たない)コンストラクタがなければ困ります。T」の後にAsキーワードを使います。以下に、記述可能な制約のパターンの一覧を実際のコードで示します(このコードはコンパイル可能です)。Interface記述可能な制約のパターンの一覧なおここでは説明は割愛しますが、1つの型パラメータに対して複数の制約を指定可能です。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。