C#从对象内部进行深层复制[复制]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#从对象内部进行深层复制[复制]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
- Deep cloning objects 42回答
我有一个包含许多私有属性的对象。它有一个空构造函数,以及一个接受其自身实例化版本的构造函数。我需要将此新实例分配给旧实例的深层副本。可以这样做吗?例:
public class Foo
{
private Property p;
public Foo()
{
p = new Property("this and that");
}
public Foo(Foo f)
{
this.Object = f.DeepCopy; // What would this statement be?
}
}
HALP。
答案
您可以使用以下方法将对象从一个深度复制到另一个。
public T DeepCloneTheObject<T>(T obj)
{
using (var ms = new MemoryStream())
{
var formatter = new BinaryFormatter();
formatter.Serialize(ms, obj);
ms.Position = 0;
return (T)formatter.Deserialize(ms);
}
}
在你的例子中,你可以说,DeepCloneTheObject(f)
以上是关于C#从对象内部进行深层复制[复制]的主要内容,如果未能解决你的问题,请参考以下文章