深复制

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;
}

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

posted @ 2013-08-29 11:43  古兰色回忆  阅读(194)  评论(0编辑  收藏  举报