最近,我已阅读在泛型的上下文中,术语“裸类型约束”。这是什么 意思?我们在哪里使用它?

有帮助吗?

解决方案

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#编译器团队,我感到非常震惊,震惊!发现在几年前,这是文档所说的话。我们通常称之为“类型参数约束”。我不知道这个词是怎么进入摆在首位的文件;可能有一个有趣的故事在那里。

“当一个一般类型参数被用作一个约束,其被称为裸类型约束。裸类型约束有用的,当其自己的类型参数的成员函数具有与参数约束到包含类型的类型参数“

http://msdn.microsoft.com/en-us/library/ d5x73970.aspx

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top