2012-02-03 13 views
3

私はこれに関するいくつかの記事を読んだが、私はまだ定義を完全に理解しているかどうかはわかりません。オープン、クローズド、バインド、バインドされていない一般的なタイプ

ここには、さまざまな用語の例があります。私はここで正しい道を歩いているのですか、それとも私はまだその概念を理解していませんか?ありがとう

Array<T TArray> - unbound and open. 
Array<int> - bound and closed. 
Array<Array<T TArray> - bound and open. 
Array<Array<int>> - bound and closed. 

答えて

3

は、typeof(Dictionary<,>)のような意味です。バインドされていないタイプはReflectionでのみ面白く、typeof()でのみ使用できます。他のコンテキストでは使用できません。 すべてのバインドされていないタイプは閉じたタイプです。アンバインドとオープンの組み合わせは不可能です。 - 非結合型はtypeof()にのみ直接、型引数として使用することができないList<Dictionary<,>>のようなものが存在しないこと

Dictionary<,> - unbound and closed 
Dictionary<string, int> - constructed and closed 
Dictionary<int, T> - constructed and open 
Dictionary<string, List<T>> - constructed and open 
NonGenericClass - bound and closed 

仮定Tは現在のクラス/メソッドの型パラメータです。型は、バインドされていないか、完全にバインドされています。 型がバインドされていない場合は、型パラメータを参照できる場所がないため、 "unbound and open"の組み合わせは不可能です。

+0

ありがとうございました。非常に役立ちます。 –

関連する問題