【发布时间】:2011-11-13 23:32:12
【问题描述】:
如果我有两个班级:
public class A { }
public class B : A { }
我创建了一个通用容器和一个接受它的函数:
public void Foo(List<A> lst) { ... }
如果我尝试将 List<B> 转换为 List<A>,则会得到无效转换,而必须像这样传递它:
var derivedList = new List<B>();
Foo(new List<A>(derivedList));
是否有某种方法可以将List<B> 传递给此函数,而无需分配全新列表的开销,或者 C# 是否不支持从派生类型的通用容器转换为其基类型?
【问题讨论】:
标签: c# .net list generics inheritance