我正在重新发布我刚刚提出的一个问题,但我想以更简洁的方式重新提出这个问题,因为我认为我造成了一些混乱。
我有一个基类:RoomObject。我有两个子类:Bed 和 Table,它们继承自 RoomObject。
我有一个变量 currentObject,它是 RoomObject 类型,但实际上将保存 Bed 或 Table 的实例(RoomObject 本身永远不会实例化)。
如何在不知道其完整类型的情况下克隆我的 currentObject?
即如果 currentObject 是床,我想克隆床使用
currentObject = new Bed(currentObject);
如果 currentObject 是一个表,我想使用
currentObject = new Table(currentObject);
我可以通过调用 Activator.CreateInstance(currentObject.GetType()) 来使用反射,然后复制我需要的任何属性,但这看起来很混乱。