.NET Framework におけるジェネリック
更新 : 2007 年 11 月
ジェネリックを使用すると、操作対象のデータ型に厳密に合わせてメソッド、クラス、構造体、またはインターフェイスを調整できます。たとえば、任意の型のキーと値を許可する Hashtable クラスを使用する代わりに、Dictionary<TKey, TValue> ジェネリック クラスを使用してキーと値に許可する型を指定できます。ジェネリックの利点の 1 つは、コードの再利用性とタイプ セーフが向上することです。
.NET Framework では、System.Collections.Generic 名前空間と System.Collections.ObjectModel 名前空間に多数のジェネリック コレクション クラスが提供されています。並べ替えと等式による比較を実装するためのジェネリック インターフェイスは、イベント ハンドラ、変換、および検索述語の汎用デリゲート型と共に、System 名前空間に提供されています。
ジェネリックのサポートは、System.Reflection (ジェネリック型とジェネリック メソッドのチェック用)、System.Reflection.Emit (ジェネリック型とジェネリック メソッドを含む動的アセンブリの出力用)、および System.CodeDom (ジェネリックを含むソース グラフの生成用) に追加されています。
Visual Basic、C#、および Visual C++ は、ジェネリック型の定義および使用を完全にサポートしています。共通言語ランタイムは、Microsoft Intermediate Language (MSIL) でジェネリック型をサポートするための新しいオペコードとプレフィックスを提供します。
このセクションの内容
.NET Framework のジェネリックの概要
ジェネリック機能、ジェネリック機能が .NET Framework にもたらす能力、およびジェネリック機能が共通言語ランタイムで公開されるしくみについて説明します。.NET Framework のジェネリック コレクション
.NET Framework のジェネリック コレクション クラスおよびその他のジェネリック型について説明します。配列とリストの操作に使用する汎用デリゲート
変換、検索述語、配列またはコレクションの要素に対して実行するアクションのための汎用デリゲートについて説明します。ジェネリック インターフェイス
ジェネリック型のファミリ間で共通の機能を提供するジェネリック インターフェイスについて説明します。ジェネリックの利点と制限事項
ジェネリックを使用する利点と制限について要点を説明します。
参照
System.Collections.Generic
List<T> ジェネリック クラスや Dictionary<TKey, TValue> ジェネリック クラスなど、.NET Framework が提供するほとんどのジェネリック コレクション型について説明します。System.Collections.ObjectModel
ReadOnlyCollection<T> ジェネリック クラスなど、クラスのユーザーにオブジェクト モデルを公開するうえで役立つその他のジェネリック コレクション型について説明します。OpCodes
Stelem、Ldelem、Unbox_Any、Constrained、および Readonly などの新しいオペコードとプレフィックスが、ジェネリックをサポートするために追加されています。
関連するセクション
一般的に使用されるコレクション型
ジェネリック型を含む .NET Framework のコレクション型の特性と使用シナリオの概要を説明します。ジェネリック コレクションを使用する状況
どのような場合にジェネリック コレクション型を使用するかを判断するための一般的な規則について説明します。リフレクションとジェネリック型
リフレクションを使用してジェネリック型とジェネリック メソッドをチェックする方法について説明します。方法 : リフレクション出力を使用してジェネリック型を定義する
ジェネリック型とジェネリック メソッドを含む動的アセンブリを生成する方法について説明します。Visual Basic におけるジェネリック型
Visual Basic ユーザー向けにジェネリック機能について説明し、ジェネリック型を使用および定義する方法を説明したトピックを紹介します。ジェネリックの概要 (C# プログラミング ガイド)
C# ユーザー向けに、ジェネリック型の定義と使用について概説します。Overview of Generics in C++
C++ ユーザー向けに、ジェネリックとテンプレートの違いを含め、ジェネリック機能について説明します。