我需要深入拷贝一个对象从一个类,我做了从同一类的另一个对象,我不想浅拷贝,我不想使用序列化方法 有没有其他简单的方法来使用??C#需要深拷贝一个对象
回答
实施IClonable并提供在Clone
方法克隆自己。
一种便宜的方法是序列化,然后使用二进制序列化将其反序列化。
MyObject myobj = new MyObject();
// ...
MemoryStream ms = new MemoryStream();
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(ms, myObj);
MemoryStream ms2 = new MemoryStream(ms.ToArray());
var myobj2 = (MyObject)formatter.Deserialize(ms2);
Eww。那是邪恶的。 – alternative 2011-05-25 23:45:13
我听到你的声音。但是如果你有一个真正复杂的对象图,这可能是最安全的方法。自定义的“深度复制”代码可能会在您添加它们时错过字段。 – 2011-05-26 00:13:31
第二个流的创建是否会复制已写入流的所有数据? – alternative 2011-05-26 00:50:22
- 1. C#对象的深拷贝
- 2. 深拷贝的对象
- 3. 浅拷贝和深拷贝在C
- 4. C++:深拷贝一个基类指针
- 5. 浅拷贝或深拷贝?
- 6. 浅拷贝和深深的对象C复制
- 7. Poco :: JSON的深拷贝::对象
- 8. 的JavaScript:深拷贝和清除对象
- 9. 如何深度拷贝函数对象
- 10. C++ boost深层拷贝:: shared_ptr
- 11. 深拷贝
- 12. 深拷贝userControl
- 13. 浅拷贝和深拷贝示例
- 14. 深拷贝在Python
- 15. 深拷贝(链表)
- 16. DPDK mbuf深拷贝
- 17. NSManagedObjects深拷贝NSMutableArray
- 18. 深拷贝在Python
- 19. java的深拷贝
- 20. 深拷贝ASP.NET GridView
- 21. 结构深拷贝
- 22. C++深拷贝载体的指针对象
- 23. 使用UIImageView作为属性深拷贝Objective C对象
- 24. JDO拷贝对象
- 25. 在JavaScript中拷贝一个子对象
- 26. 包含所有子对象的深拷贝java对象
- 27. Objective-C:拷贝数组,修改拷贝中的元素(对象)
- 28. 带有基元和对象引用的System.arraycopy()浅拷贝或深度拷贝
- 29. python:需要一个打破所有共享标识的深层拷贝
- 30. 矢量STD C++ - 深或浅拷贝
是的,写代码。 – 2011-05-25 23:31:18
感谢所有的答案=) – 2011-05-27 11:50:26