.NET框架-Clone如何由浅复制变深度复制?

作者:vuefine
文献:大话设计模式 | 程杰
平台:.NET 2.0+


问题分析

有的场合下,我们需要浅复制便能解决问题,因为我们复制出来的实例,仍然引用原来的初始对象。但是,有时候浅复制得到的实例上的属性值还要做出调整,并且保证不能影响原始对象,这样只能深度复制才能做到。

应用举例

首先看一下浅复制为什么不能满足我们的要求。我们要复制简历,并且复制出的版本只有一处不同于模板简历的求职意向中的公司名称。

简历模型1.0版本:

    public class ResumeInfoShell:ICloneable
    {

        public ResumeInfoShell(string name, string telephone, EducationInfo educationInfo,WantedJobShell job)
        {
            this._name = name;
            this._telephone = telephone;
            this._educationInfo = educationInfo;
            this._wantedJob = job;
        }

        private string _name;
        public string name
        {
            get { return this._name; }
        }

        private string _telephone;
        public string telephone
        {
            get { return _telephone; }
        }

        private EducationInfo _e
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值