首页 新闻 会员 周边 捐助

求助,泛型转换的问题

0
悬赏园豆:20 [已关闭问题] 关闭于 2012-11-26 21:40
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();

 

|ī笨笨﹎ヤ的主页 |ī笨笨﹎ヤ | 初学一级 | 园豆:2
提问于:2012-11-18 13:41
< >
分享
所有回答(1)
0

不行,逆变和协变只针对接口和委托。http://msdn.microsoft.com/zh-cn/library/dd799517(v=vs.100) 大概网页中间的部分有说明。

水牛刀刀 | 园豆:6350 (大侠五级) | 2012-11-19 01:02

在.net 4.0之前泛型是不支持协变和逆变的,.net 4.0引入in/out参数胡,使泛型类型的协变和逆变得以实现。

支持(0) 反对(0) @大龙哥 | 园豆:183 (初学一级) | 2012-11-19 08:31

@Simple Simle: 你想说什么?

支持(0) 反对(0) 水牛刀刀 | 园豆:6350 (大侠五级) | 2012-11-19 10:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册