用語「裸の型制約」とは何を指すのでしょうか?
-
20-09-2019 - |
質問
最近、私は、ジェネリック医薬品の文脈における用語「裸の型制約」を読みました。それは何が 平均?我々はそれをどこに使うのですか?
解決
MSDN のから:
Constraint Description where T : U The type argument supplied for T must be or derive from the argument supplied for U. This is called a naked type constraint.
ジェネリック型パラメータを制約として使用されている場合は、、それは裸の型の制約と呼ばれています。次の例に示すように、ネイキッドタイプの制約は、それ自身の型パラメータを持つメンバ関数を含む型の型パラメータに対してそのパラメータを制約する必要がある場合に有用である:
class List<T>
{
void Add<U>(List<U> items) where U : T {/*...*/}
}
他のヒント
余談として、このややわいせつな用語は、MSDNのドキュメントにそれを作るために管理することを私に奇妙です。我々は確かにC#コンパイラチームの「裸の型制約を」これらの制約を呼び出さないと、私はショックを受け、ショックを受けました!これはドキュメントが言っていることを数年前に発見します。私たちは通常、「型パラメータ制約」と呼ん。私はこの言葉が最初の場所でドキュメントに入ったか分かりません。面白い話があり、おそらくあります。
ジェネリック型パラメータを制約として使用されている場合は、
」、それは裸の型制約と呼ばれている。独自の型パラメータを持つメンバ関数を含む型の型パラメータにそのパラメータを制約しなければならないときネイキッドタイプの制約が便利です「
所属していません StackOverflow