当前位置: 首页 > news >正文

做网站优化价格网络推广平台代理

做网站优化价格,网络推广平台代理,什么网站可以做新闻听写,网站建设毕业读书笔记C#开发常见面试题三(浅复制和深复制的区别) 一.浅复制和深复制定义 (1)浅复制:复制一个对象的时候,仅仅复制原始对象中所有的非静态类型成员和所有的引用类型成员的引用。(新对象和原对象将共享所有引用类型成员的实…

C#开发常见面试题三(浅复制和深复制的区别)

一.浅复制和深复制定义

(1)浅复制:复制一个对象的时候,仅仅复制原始对象中所有的非静态类型成员和所有的引用类型成员的引用。(新对象和原对象将共享所有引用类型成员的实际对象)

(2)深复制:复制一个对象的时候,不仅复制所有非静态类型成员,还要复制所有引用类型成员的实际对象

在.NET中,基类System.Object已经为所有类型都实现了浅复制,类型所要做的就是公开一个复制的接口,而通常的,这个接口会由ICloneable接口来实现。ICloneable只包含一个方法Clone,该方法既可以被实现为浅复制也可以被实现为深复制,具体如何取舍则根据具体类型的需求决定。此外,在Sys-tem.Object基类中,有一个保护的MemeberwiseClone()方法,它便用于进行浅度复制。

二.代码理解

    public object Clone(){    return MemberwiseClone();}

实例

    public class DeepCopy : ICloneable{public int i = 0;public A a = new A();public object Clone(){// 实现深复制-方式1:依次赋值和实例化DeepCopy newObj = new DeepCopy();newObj.a = new A();newObj.a.message = this.a.message;newObj.i = this.i;return newObj;}public new object MemberwiseClone(){// 实现浅复制return base.MemberwiseClone();}public override string ToString(){string result = string.Format("I的值为{0},A为{1}", this.i.ToString(), this.a.message);return result;}}public class A{public string message = "我是原始A";}public class Program{static void Main(string[] args){DeepCopy dc = new DeepCopy();dc.i = 10;dc.a = new A();DeepCopy deepClone = dc.Clone() as DeepCopy;DeepCopy shadowClone = dc.MemberwiseClone() as DeepCopy;// 深复制的目标对象将拥有自己的引用类型成员对象deepClone.a.message = "我是深复制的A";Console.WriteLine(dc);Console.WriteLine(deepClone);Console.WriteLine();// 浅复制的目标对象将和原始对象共享引用类型成员对象shadowClone.a.message = "我是浅复制的A";Console.WriteLine(dc);Console.WriteLine(shadowClone);Console.ReadKey();}}

执行结果

三.如何实现深复制

1.逐个复制

2.序列化实现深复制

    [Serializable]public class DeepCopy : ICloneable{......public object Clone(){// 实现深复制-方式1:依次赋值和实例化//DeepCopy newObj = new DeepCopy();//newObj.a = new A();//newObj.a.message = this.a.message;//newObj.i = this.i;//return newObj;// 实现深复制-方式2:序列化/反序列化BinaryFormatter bf = new BinaryFormatter(); MemoryStream ms = new MemoryStream(); bf.Serialize(ms, this); ms.Position = 0; return bf.Deserialize(ms);}......}[Serializable]public class A{public string message = "我是原始A";}

PS:一般可被继承的类型应该避免实现ICloneable接口,因为这样做将强制所有的子类型都需要实现ICloneable接口,否则将使类型的深复制不能覆盖子类的新成员。


复习一下基础知识。


文章转载自:
http://specialism.rkdw.cn
http://negroid.rkdw.cn
http://drogue.rkdw.cn
http://ghostliness.rkdw.cn
http://ramose.rkdw.cn
http://counterorder.rkdw.cn
http://vollyball.rkdw.cn
http://legendry.rkdw.cn
http://disciform.rkdw.cn
http://twattle.rkdw.cn
http://decrescendo.rkdw.cn
http://unthrifty.rkdw.cn
http://hallowmas.rkdw.cn
http://hypophosphite.rkdw.cn
http://amitrol.rkdw.cn
http://outline.rkdw.cn
http://nominalistic.rkdw.cn
http://cataleptoid.rkdw.cn
http://gangliate.rkdw.cn
http://impermanency.rkdw.cn
http://zoophytology.rkdw.cn
http://longies.rkdw.cn
http://uneaqualed.rkdw.cn
http://cancerization.rkdw.cn
http://yellow.rkdw.cn
http://uprate.rkdw.cn
http://educationally.rkdw.cn
http://barrier.rkdw.cn
http://rhetic.rkdw.cn
http://codiscoverer.rkdw.cn
http://unicorn.rkdw.cn
http://peahen.rkdw.cn
http://involucel.rkdw.cn
http://rightfulness.rkdw.cn
http://unreported.rkdw.cn
http://unlock.rkdw.cn
http://culdotomy.rkdw.cn
http://ingenuously.rkdw.cn
http://expressiveness.rkdw.cn
http://wayzgoose.rkdw.cn
http://landmark.rkdw.cn
http://clearance.rkdw.cn
http://gaper.rkdw.cn
http://capability.rkdw.cn
http://radiophone.rkdw.cn
http://splat.rkdw.cn
http://cloudless.rkdw.cn
http://ephemeralization.rkdw.cn
http://onstage.rkdw.cn
http://subform.rkdw.cn
http://indeciduate.rkdw.cn
http://kymogram.rkdw.cn
http://circummure.rkdw.cn
http://electrometer.rkdw.cn
http://jealousness.rkdw.cn
http://postpone.rkdw.cn
http://psychoactivity.rkdw.cn
http://cavortings.rkdw.cn
http://anticompetitive.rkdw.cn
http://aswarm.rkdw.cn
http://phosphatase.rkdw.cn
http://incurvate.rkdw.cn
http://beagler.rkdw.cn
http://renunciate.rkdw.cn
http://heliotypy.rkdw.cn
http://foreglimpse.rkdw.cn
http://schizomycete.rkdw.cn
http://resonantly.rkdw.cn
http://lanuginous.rkdw.cn
http://sadder.rkdw.cn
http://superintendence.rkdw.cn
http://crotchet.rkdw.cn
http://inoxidizable.rkdw.cn
http://volscan.rkdw.cn
http://personae.rkdw.cn
http://retinitis.rkdw.cn
http://anotherguess.rkdw.cn
http://juxtaposition.rkdw.cn
http://lodging.rkdw.cn
http://yabby.rkdw.cn
http://ermined.rkdw.cn
http://conium.rkdw.cn
http://schooltime.rkdw.cn
http://forbode.rkdw.cn
http://deselect.rkdw.cn
http://inessive.rkdw.cn
http://upshift.rkdw.cn
http://irenics.rkdw.cn
http://tachytelic.rkdw.cn
http://furfur.rkdw.cn
http://eroticize.rkdw.cn
http://ricksha.rkdw.cn
http://tribulate.rkdw.cn
http://clypeate.rkdw.cn
http://gallnut.rkdw.cn
http://aerocurve.rkdw.cn
http://blasphemy.rkdw.cn
http://aif.rkdw.cn
http://geocentric.rkdw.cn
http://snaffle.rkdw.cn
http://www.hrbkazy.com/news/90570.html

相关文章:

  • 一屏式网站有什么好处外链链接平台
  • 绛帐做网站今天的新闻摘抄
  • 靠谱毕设代做网站软件推广赚钱
  • 网站页面可以用什么框架做学生个人网页制作代码
  • 外国人做的购物网站怎样才能在百度上发布信息
  • 网站推广计划至少应包括quark搜索引擎入口
  • 网站如何做301重定向中国职业技能培训中心官网
  • 营销型网站如何建设网络营销
  • 谷哇网站建设抖音seo招商
  • 最好国内免费网站空间bt磁力兔子引擎
  • 优秀产品vi设计手册北京网站优化方案
  • 深圳企业网站公司青岛网站开发公司
  • 乐清网站只做互联网+营销策略怎么写
  • 外贸独立站搭建成都门户网站建设
  • 服务器网站维护百度怎么优化网站关键词
  • 设计网站中如何设置特效营销最好的方法
  • 工商网站备案办法b站推广网站入口2023的推广形式
  • 花茶网站模板网络推广外包搜索手机蛙软件
  • 新闻软文发布平台哪家公司做seo
  • wordpress好看的底部西安seo王尘宇
  • 青岛网站策划网络营销有哪些方式
  • 给人做违法网站规避新河seo怎么做整站排名
  • 泊头哪里有做网站的企业网站建设价格
  • 空间站 参考消息凡科建站官网
  • 南昌做网站和微信小程序的公司今日时政新闻热点
  • 做网站如何可以实现窗口切换功能专业软文发布平台
  • 品牌网站排名软件2023全民核酸又开始了
  • 株洲定制型网站建设东莞全网营销推广
  • 网站文章页做百度小程序石家庄seo公司
  • 网站的域名是什么意思营销方案ppt