在Java中,可以绑定泛型类型的类型参数。可以这样做:
class A<T extends B> {
...
}
因此,这个A的泛型类的类型参数应该是B或B的子类。
我想知道C#是否有类似的功能。如果有人告诉我,我很感激。
感谢
C#中相同的是:
class A<T> where T : B
{
}
另请参阅"类型参数上的约束"(msdn),以了解约束的一般概述。
非常相似:
public class A<T> where T : B
{
// ...
}
这可以用于将T约束为B的子类或实现(如果B是接口)。
此外,您可以将T约束为引用类型、值类型或需要默认构造函数:
where T : class // T must be a reference type
where T : struct // T must be a value type
where T : new() // T must have a default constructor
当然可以:
class A<T> where T: B
{
// ...
}
是的,你可以这样做,它被称为类型约束。这里有一篇文章解释了如何:
http://msdn.microsoft.com/en-us/library/d5x73970.aspx