ジェネリック (C# プログラミング ガイド)

更新 : 2007 年 11 月

ジェネリックは、C# 言語と共通言語ランタイム (CLR: Common Language Runtime) の Version 2.0 に追加されたものです。ジェネリックは、.NET Framework に型パラメータという概念を導入します。型パラメータを使用すると、クラスやメソッドがクライアント コードで宣言され、インスタンス化されるまで、1 つ以上の型の指定を遅延させるクラスとメソッドを設計できます。たとえば、ジェネリック型パラメータ T を使用すると、次に示すようにランタイムのキャストやボックス化操作のコストやリスクを負わずに他のクライアント コードで使用できる単一のクラスを記述できます。

// Declare the generic class.
public class GenericList<T>
{
    void Add(T input) { }
}
class TestGenericList
{
    private class ExampleClass { }
    static void Main()
    {
        // Declare a list of type int.
        GenericList<int> list1 = new GenericList<int>();

        // Declare a list of type string.
        GenericList<string> list2 = new GenericList<string>();

        // Declare a list of type ExampleClass.
        GenericList<ExampleClass> list3 = new GenericList<ExampleClass>();
    }
}

ジェネリックの概要

  • ジェネリック型は、コードの再利用性、タイプ セーフ性、およびパフォーマンスを最大化するために使用します。

  • ジェネリックの最も一般的な用途は、コレクション クラスの作成です。

  • .NET Framework クラス ライブラリには、複数の新しいジェネリック コレクション クラスが System.Collections.Generic 名前空間に含まれています。これらのクラスは、System.Collections 名前空間の ArrayList などのクラスの代わりとして、できる限り使用してください。

  • 独自のジェネリック インターフェイス、クラス、メソッド、イベント、およびデリゲートを作成できます。

  • ジェネリック クラスは、特定のデータ型のメソッドのみへのアクセスを許可するように制約できます。

  • ジェネリック データ型で使用される型に関する情報は、実行時にリフレクションを使用して取得できます。

関連項目

詳細情報

C# 言語仕様

詳細については、「C# 言語仕様」を参照してください。

参照

概念

C# プログラミング ガイド

参照

System.Collections.Generic

型 (C# プログラミング ガイド)

<typeparam> (C# プログラミング ガイド)

<typeparamref> (C# プログラミング ガイド)