C#でリフレクションを使用していくつかの作業を行っているときに、一部の型に型定義があることに気付きました。
Foo<,>
この表記の正式な用語は何ですか?
C#でリフレクションを使用していくつかの作業を行っているときに、一部の型に型定義があることに気付きました。
Foo<,>
この表記の正式な用語は何ですか?
のようなジェネリックパラメーターが欠落しているタイプ名はList<>
、非バインドジェネリック型と呼ばれます。この質問には、バインドされていないジェネリック型といくつかの関連用語の概要が記載されています。
これらのタイプを説明しているコンテキストに応じて、他の用語が使用される場合があります。C#仕様では、「非バインドジェネリック型」という用語を使用して、のようなものを指しT<>
ます。.Netフレームワークは、「ジェネリック型の定義」(dasblinkenlightが指摘しているように、も参照Type.GetGenericTypeDefinition()
)または「オープンジェネリック型」(この記事を参照)という用語を好むようです。
これは、ジェネリック型の定義を表す型です。
var genType = typeof(Foo<int,int>);
var genTypeDef = genType.GetGenericTypeDefinition(); // Returns typeof(Foo<,>)