まず、次のようなものがあります。
class Parent
{
int x;
public Parent(int _x)
{
x = _x
}
}
class Child1: Parent
{
int y;
public Child1(int _y):base(_y)
{
y=_y;
}
}
class Child2: Parent
{
int z;
public Child2(int _z):base(_z)
{
z=_z;
}
}
単純な親子階層。次に、実際にはChild1とChild2でいっぱいのリストがあります。リスト内の各オブジェクトのコピーを作成し、そのコピーとなる新しいアイテムを作成することから始めたいと思います。
しかし、私がこれを行う場合:
foreach(Parent p in list)
dictionaryOfCopies.Add(p, new Parent(p.x));
その場合、辞書は、Children1とChildren2ではなく、Parentのものでいっぱいになります。オブジェクトの特定のタイプを知らなくても、親タイプとして型指定されたオブジェクトのコンストラクターを呼び出す方法はありますか?