泛型的问题,类型转换

易十五 2012-04-30 12:13:34
a 类型, b继承于a
list<a> aList
list<b>bList
如何把 aList值给bList? 或转换过去

不要用循环的方法,可不可以实现?
...全文
151 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
瑞卡哥哥 2012-04-30
  • 打赏
  • 举报
回复


blist.addall(alist);
//不同集合可以这样追加
//但是集合的类型必须要一样 你可以 把两个集合都声明为obj
zh6335901 2012-04-30
  • 打赏
  • 举报
回复
泛型的逆变,不过只能用于接口和委托
  • 打赏
  • 举报
回复
虽然b继承于a,但是list<a> aList和list<b>bList毫无继承关系。

可以采取协变方式来模拟类似于多态的效果,但是那是从List<b>到List<a>的一种迭代计算,而不是从List<a>到List<b>的。
Osiris4Net 2012-04-30
  • 打赏
  • 举报
回复
JAVA上叫塑形貌似,父类可以装子类,子类不能装父类,子类装到父类后,得通过转换回子类才能获得子类独有的特性
stonespace 2012-04-30
  • 打赏
  • 举报
回复
b继承于a的话,aList无法传给bList,但bList可以传给aList,只能用循环,
rufengit 2012-04-30
  • 打赏
  • 举报
回复
楼主需要多了解一下继承的层次及多态的东西,子类可以用父类表示,反之则不成立,因为子类可以有自己特有的属性及方法,只能通过迭代或循环实现。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧