リストの継承に問題があります。より多くの指定されたメンバーを持つ一般的なリストは、その基本メンバーを持つリストに変換できないように見えます。これを見てください:
class A
{
public int aValue {get; set;}
}
class B : A
{
public int anotherValue {get; set;}
}
List<B>
これで、aもであると期待するかもしれませんが、List<A>
そうではありません。
List<A> myList = new List<B>()
不可能である。List<A> myList = (List<A>)new List<B>()
オブジェクト指向プログラミングで3年間働いた後、ここでいくつかの基本的な概念を見逃していませんか?