复制C#对象以及引用

6

可能是重复问题:
在C#中克隆对象

我有一个在C#中创建的对象,称为Object1。我需要将此对象临时备份到另一个对象ObjectOriginal中。

但是,如果我执行ObjectOriginal = Object1,那么对Object 1所做的任何更改都会影响ObjectOriginal。我该怎么做?


请看 https://dev59.com/H3VD5IYBdhLWcg3wHn6d - rerun
3个回答

2

一切都取决于Object1实际上是什么,即它是一个DataTable,一个String,还是完全不同的东西?

通过编写:

object Object1 = new Thing();
object Object2 = Object1;

你会得到一个对你在第一行实例化的对象的第二个引用。你需要做的是查看“Thing”并看看它是否有Copy、Clone或类似命名的方法,然后使用该方法:

object Object1 = new Thing();
object Object2 = Object1.Copy();

例如,DataTable提供了Copy和Clone方法,其中Copy复制DataTable的结构和数据,而Clone仅复制结构。

1

0
如果你想复制一个对象,那么问题就是:复制应该进行多深?我的对象内部的对象应该怎么处理?这些对象也应该被复制吗?如果是,它们的引用应该怎么处理?
要了解更多信息,请查看Brad Abrams 的博客文章

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接