我正在寻找一种方法来克隆在编译时(或运行时,我认为)未知的对象。问题的确切措辞是“编写一个可以克隆任意对象的函数”,例如
我猜我需要使用反射来读取函数和变量,然后了解如何创建一个新对象并将这些值分配给它。我可以使用 Type.GetType() 来查找类型并创建一个新实例,然后使用它known对象的复制构造函数。但我不确定给定的类是否会实现一个(深度),或者问题是否要求这样的解决方案(我不明白所需的结果是什么,这无济于事!)。
有人可以引导我朝正确的方向前进吗?需要类/接口,如果您慷慨的话,还可以使用伪代码来实现这一目标吗?
您可以简单地Serialize
and Deserialize
一个用于克隆的对象。
以下函数将执行此操作:
public object Clone(object obj)
{
MemoryStream ms = new MemoryStream();
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(ms, obj);
ms.Position = 0;
object obj_clone = bf.Deserialize(ms);
ms.Close();
return obj_clone;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)