泛型中 基类和子类 怎么转换? 基类 A 子类 B基类方法public List<A> getlist(){ return;}List<B> list = base.getlist();怎么达成 上面的目标? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这涉及到泛型的可变性,可以使用out参数或in参数来实现转换,具体参考文章:http://www.cnblogs.com/zhili/archive/2012/11/12/GenericVari.html List<B> list = base.getlist().Select(x => x as B).ToList();不过从A转换到B需要自己重载显式转换运算符,反之不需要。 List<A> 和 List<B> 是完全不相关的两个类型,A、B确定后该泛型就为封闭类型,为指定前是开放类型,除非你详细的知道A\B的内部结构。也可以在泛型参数中指定参数是协变的,这就要求类型 A和B有一定的继承关系(类继承或接口继承)。 理解我的问题是 协变与逆变 的问题但是怎么具体到我的例子中 要怎么写 还没有看懂这是不行的。建议别人看以前最好自己先看看。谢谢指正,我本来是想说如果使用协变类型 AB要有关系,但不是说能转换。 List<A> 和 List<B> 是完全不相关的两个类型。 理解我的问题是 协变与逆变 的问题但是怎么具体到我的例子中 要怎么写 还没有看懂这是不行的。建议别人看以前最好自己先看看。谢谢指正,我本来是想说如果使用协变类型 AB要有关系,但不是说能转换。 List<A> 和 List<B> 是完全不相关的两个类型。不是,C#根本没有支持“协变类型”,只是换汤不换药地刷了小手段。 如果有 in out 要怎么写呢? 怎么改变datagrid里面的某一个格子的字颜色或格子颜色? winform中 绑定的数据项,如何水平排列显示 .NET 发送邮件问题 100分求教!如何用C# 实现向空的Excel文件中添加任意的内容。 郁闷很久的调用动态库问题 建议楼主封utyeertdsf123() 的id,看了一下午他的广告! 请问如何在.net中转码? 关于SPS的问题,高手请进,在线等候,up有分 winform 难点攻关(组织架构图形化) 如何向新建的线程传递参数? 有谁有C#中类指针的介绍的 请教winform一个小程序
但是怎么具体到我的例子中 要怎么写 还没有看懂这是不行的。建议别人看以前最好自己先看看。谢谢指正,我本来是想说如果使用协变类型 AB要有关系,但不是说能转换。 List<A> 和 List<B> 是完全不相关的两个类型。
但是怎么具体到我的例子中 要怎么写 还没有看懂这是不行的。建议别人看以前最好自己先看看。谢谢指正,我本来是想说如果使用协变类型 AB要有关系,但不是说能转换。 List<A> 和 List<B> 是完全不相关的两个类型。不是,C#根本没有支持“协变类型”,只是换汤不换药地刷了小手段。