深复制

public 类型 CloneOf<T>(类型 model)

{

    object objCopy = null;

    MemoryStream stream = new MemoryStream();

    BinaryFormatter binFormatter = new BinaryFormatter();

    binFormatter.Serialize(stream, model);

    stream.Position = 0;

    objCopy = (T)binFormatter.Deserialize(stream);

    stream.Close();

    return (类型)objCopy;

}

值类型的对象之间复制很简单,但是引用类型就比较坑了,因为复制过去的只有引用地址,而不是真实的数据。这就导致以为更改了一个对象,但是结果发现复制出来的几个对象内容也全变了。
此时就需要深复制,因为深复制的时候,会同时创建一个新的对象,这个样子就不会出现给一个对象的内容赋值,而被复制出来的对象内容也发生变化的现象了。

你可能感兴趣的:(复制)