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

ジェネリックは、バージョン 2.0 の C# 言語と共通言語ランタイム (CLR) に追加されたものです。Generics were added to version 2.0 of the C# language and the common language runtime (CLR). ジェネリックは、.NET Framework に型パラメーターという概念を導入します。型パラメーターを使用すると、クラスやメソッドがクライアント コードで宣言され、インスタンス化されるまで、1 つ以上の型の指定を遅延させるクラスとメソッドを設計できます。Generics introduce to the .NET Framework the concept of type parameters, which make it possible to design classes and methods that defer the specification of one or more types until the class or method is declared and instantiated by client code. たとえば、ジェネリック型パラメーター T を使用すると、次に示すようにランタイムのキャストやボックス化操作のコストやリスクを負わずに他のクライアント コードで使用できる単一のクラスを記述できます。For example, by using a generic type parameter T you can write a single class that other client code can use without incurring the cost or risk of runtime casts or boxing operations, as shown here:

// 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>();
    }
}

ジェネリックの概要Generics Overview

  • ジェネリック型は、コードの再利用、タイプ セーフ、およびパフォーマンスを最大化するために使用します。Use generic types to maximize code reuse, type safety, and performance.

  • ジェネリックの最も一般的な用途は、コレクション クラスの作成です。The most common use of generics is to create collection classes.

  • .NET Framework クラス ライブラリには、複数の新しいジェネリック コレクション クラスが System.Collections.Generic 名前空間に含まれています。The .NET Framework class library contains several new generic collection classes in the System.Collections.Generic namespace. System.Collections 名前空間の ArrayList などのクラスの代わりとして、できる限りこれらを使用してください。These should be used whenever possible instead of classes such as ArrayList in the System.Collections namespace.

  • 独自のジェネリック インターフェイス、クラス、メソッド、イベントおよびデリゲートを作成することができます。You can create your own generic interfaces, classes, methods, events and delegates.

  • ジェネリック クラスは、特定のデータ型のメソッドへのアクセスを有効にするように制限できます。Generic classes may be constrained to enable access to methods on particular data types.

  • ジェネリック データ型で使用される型に関する情報は、実行時にリフレクションを使用して取得できます。Information on the types that are used in a generic data type may be obtained at run-time by using reflection.

詳細情報For more information:

C# 言語仕様C# Language Specification

詳細については、「C# 言語の仕様」を参照してください。For more information, see the C# Language Specification.

関連項目See Also

System.Collections.Generic
C# プログラミング ガイドC# Programming Guide
Types
<typeparam><typeparam>
<typeparamref><typeparamref>