深复制

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

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

转载于:https://www.cnblogs.com/rogation/p/3288797.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值