将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