class A<T1, T2>
where T1 : Foo
where T2 : T1
有实际用例吗?
与
有什么不同class A<T1, T2>
where T1 : Foo
where T2 : Foo
?实际改变了什么?
涉及方差时是否相同?
答案 0 :(得分:10)
区别在于T2
不能只是Foo
Foo
,而是T1
来自public class Foo{}
public class Foo1 : Foo {}
public class Foo2 : Foo {}
public class Foo12 : Foo1 {}
public class A<T1,T2> where T1: Foo where T2 : T1 {}
。
例如
var a = new A<Foo1, Foo12>()
将允许
var a = new A<Foo1, Foo2>()
但不是
T2
这也意味着您可以安全地将T1
类型的对象转换为row_number()
。
涉及方差时是否相同?
方差只与界面有关。