在java中,可以绑定泛型类型的类型参数。可以这样做:
class A<T extends B>{
...
}
因此,此通用类A的类型参数应为B或B的子类。
我想知道C#是否有类似功能。如果有人让我知道,我很感激。
谢谢,
答案 0 :(得分:18)
答案 1 :(得分:9)
非常相似:
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
答案 2 :(得分:3)
当然你可以:
class A<T> where T: B
{
// ...
}
答案 3 :(得分:3)
是的,你可以这样做,它被称为类型约束。这篇文章解释了如何: