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

ジェネリックは、バージョン 2.0 の C# 言語と共通言語ランタイム (CLR) に追加されたものです。 ジェネリックは、.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# 言語の仕様」を参照してください。

関連項目

System.Collections.Generic
C# プログラミング ガイド

<typeparam>
<typeparamref>