public class A {} public class B:A{} public class C:A{} public class Test<T> where T:A{} public class Test_B:Test<B>{} public class Test_C:Test<C>{} 怎么用协变和逆变让 Test<A> ab = new Test_B(); Test<A> ac = new Test_C();
不行,逆变和协变只针对接口和委托。http://msdn.microsoft.com/zh-cn/library/dd799517(v=vs.100) 大概网页中间的部分有说明。
在.net 4.0之前泛型是不支持协变和逆变的,.net 4.0引入in/out参数胡,使泛型类型的协变和逆变得以实现。
@Simple Simle: 你想说什么?