C#と.NETのジェネリックプログラミング
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/02 08:30 UTC 版)
「ジェネリックプログラミング」の記事における「C#と.NETのジェネリックプログラミング」の解説
C#(およびその他の.NET言語)のジェネリクスは.NET Framework 2.0の一部として2005年11月に追加された。Javaと似てはいるが、.NETのジェネリクスは、コンパイラによるジェネリクス型から非ジェネリクス型へのコンバートとしてではなく、実行時に実装される。このことにより、ジェネリクス型に関するあらゆる情報はメタデータとして保存される。 .NETジェネリクスの機能 型情報を削除せず、CLRの内部でジェネリクスが構築されるため(そしてコンパイラ上では全く構築しないため)、キャストや動的チェックの実行からくるパフォーマンスヒットがない。また、プログラマーはリフレクションを通じてジェネリック情報にアクセスできる。型情報を削除しないので、Javaでは不可能なジェネリック型の配列の生成が可能。 ジェネリック型の引数として参照型だけでなく値型(組み込みの基本型、およびユーザー定義型の両方)も利用できる。値型の場合、JITコンパイラは特殊化のためにネイティブコードの新しいインスタンスを作成する。このことによりボックス化をする必要がなくなり、パフォーマンスが向上する。 Javaと同様、ジェネリック型引数がそれら自身のジェネリック型であるようにできる。つまり、List<List<Dictionary
※この「C#と.NETのジェネリックプログラミング」の解説は、「ジェネリックプログラミング」の解説の一部です。
「C#と.NETのジェネリックプログラミング」を含む「ジェネリックプログラミング」の記事については、「ジェネリックプログラミング」の概要を参照ください。
- C#と.NETのジェネリックプログラミングのページへのリンク