我需要深入拷貝一個對象從一個類,我做了從同一類的另一個對象,我不想淺拷貝,我不想使用序列化方法 有沒有其他簡單的方法來使用??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