将C#对象与引用一起复制

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

我有一个在c#中创建的对象,比如Object1。 我需要暂时将这个对象备份到另一个对象,如ObjectOriginal。

但是,如果我做ObjectOriginal = Object1,对对象1的任何更改都会影响ObjectOriginal。 我如何去做这件事?


这一切都取决于Object1实际是什么,即它是一个DataTable,一个字符串,或者其他什么东西?

通过写作:

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

您将获得对第一行中实例化的对象的第二个引用。 你需要做的是看看“事情”,看看它是否有一个复制,克隆或类似命名的方法,并使用它:

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

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


在你的类上实现Clone()或使用Object.MemberwiseClone()

http://msdn.microsoft.com/de-de/library/system.object.memberwiseclone(VS.80).aspx


如果你想要一个对象的副本,问题总是如下:副本会发生多深? 我的对象中的对象应该发生什么。 如果这些也被复制,如果是的话,他们的参考应该发生什么?

欲了解更多信息,请参阅Brad Abrams撰写的这篇博客文章。

链接地址: http://www.djcxy.com/p/40765.html

上一篇: Copy C# object along with reference

下一篇: Cloning a reference type