假设我有以下课程:
public class BaseClass {
...
}
public class ChildClass : BaseClass {
...
}
如果我想在方法调用中将 ChildClass 的单个实例作为 BaseClass 类型传递,我可以这样做。
public void SomeCall(BaseClass baseClass)
....
ChildClass childClass = new ChildClass();
SomeCall(childClass); <-- Works fine
但是,如果我想传入一个列表,我似乎无法正确地转换它。
public void SomeCall(List<BaseClass> baseClasses)
....
List<ChildClass> childClasses = new List<ChildClass>();
SomeCall(childClasses); <-- Gets compiler error
我得到的错误是
Argument 1: cannot convert from 'System.Collections.Generic.List<ChildClass>'
to 'System.Collections.Generic.List<BaseClass>'
有没有办法将列表中的值转换为基类的类型?
现在,我想我只需要使用 foreach 并将列表中的每个对象自动映射到 BaseClass 的新列表。