質問したばかりの質問を再投稿していますが、混乱を引き起こしていると思うので、より簡潔な方法でこの質問を再質問したいと思います。
基本クラスはRoomObjectです。RoomObjectから継承するBedとTableの2つのサブクラスがあります。
RoomObject型の変数currentObjectがありますが、実際にはBedまたはTableのインスタンスを保持します(RoomObjectがそれ自体でインスタンス化されることはありません)。
フルタイプを知らなくても、currentObjectのクローンを作成するにはどうすればよいですか?
つまり、currentObjectがBedの場合、次を使用してBedのクローンを作成します。
currentObject = new Bed(currentObject);
currentObjectがテーブルの場合、使用したい
currentObject = new Table(currentObject);
Activator.CreateInstance(currentObject.GetType())を呼び出してリフレクションを使用し、必要な属性をコピーすることもできますが、これは面倒なようです。