2012-11-28 7 views
8

可能性の重複:
C# Language: generics, open/closed, bound/unbound, constructedC#で空の汎用パラメータ<,>の用語は何ですか?

C#で反射していくつかのものをやっている間、私はいくつかのタイプがタイプ定義などを持っていることに気付きました

Foo<,> 

この表記法の正式な用語は何ですか?

+6

@JohnSaunders私はこれを複製と呼んでいません。私は「Foo <,>」とは何ですか?彼は「非結合ジェネリック型は何ですか?」と尋ねています。 Googleで彼の質問を見つけたとしても、その名前を知らずにはいられません。 – Bringer128

+0

私の考えでは、それはそれを削除してはならない複製にします。 –

+0

より密接に関連したリンク:[if-at1-t2-is-a-template-for-actual-type-then-why-is-typeofa-allowed](http://stackoverflow.com/questions/3220480/if)実際の型のためのテンプレートである-at1-t2-is-a-template-a-typeofa-allowed?lq = 1) – nawfal

答えて

7

タイプ名が結合していないジェネリック型と呼ばれています。 This questionには、バインドされていないジェネリック型だけでなく、関連する用語も簡単にまとめられています。

これらのタイプを説明するコンテキストによっては、他の用語を使用することもできます。 C#仕様では、 "unbound generic type"という用語を使用して、T<>のようなものを参照しています。 .Netフレームワークは、用語「ジェネリック型定義」(dasblinkenlightが指摘されている、Type.GetGenericTypeDefinition()も参照)または「汎用型を開く」(thisの記事を参照)を好むようです。

+0

*非結合ジェネリック型*ジェネリック型定義*と同義語ですか? – Bringer128

+0

@ Bringer128 IMO、*型定義*は型を定義するソースコードです。だから、私は彼らが同義語だとは思わない。 –

4

これはジェネリック型定義を表しタイプですなList<>などの一般的なパラメータが欠落している

var genType = typeof(Foo<int,int>); 
var genTypeDef = genType.GetGenericTypeDefinition(); // Returns typeof(Foo<,>) 
+0

*ジェネリック型の定義*はアンバインドされたジェネリック型の類義語*ですか? – Bringer128

+0

@ Bringer128 2つは関連しています。ジェネリック型定義は、無制限ジェネリック型に対応する 'System.Type'オブジェクトを記述するためにリフレクションで使用される用語です。 – dasblinkenlight

関連する問題