次のクラスがあるとします。
public class BaseClass {
...
}
public class ChildClass : BaseClass {
...
}
メソッド呼び出しで ChildClass の 1 つのインスタンスを 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 の新しいリストに AutoMap するだけでよいと考えています。