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

食品网站网页设计内网网站开发报价

食品网站网页设计,内网网站开发报价,旅游电子商务的网站建设,河北省建设机械会网站C#开发常见面试题三(浅复制和深复制的区别) 一.浅复制和深复制定义 #xff08;1#xff09;浅复制#xff1a;复制一个对象的时候#xff0c;仅仅复制原始对象中所有的非静态类型成员和所有的引用类型成员的引用。#xff08;新对象和原对象将共享所有引用类型成员的实…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://www.hkea.cn/news/14329897/

相关文章:

  • 网站项目团队介绍互联网网站文化
  • 如何联系网站管理员河源哪有做网站
  • 如何在网站上做评比软件开发外包合同模板
  • 龙岗网站建设定制开发有没有做长图的网站
  • 海纳企业网站建设模板群晖做网站服务器速度快吗
  • dw做的网站放文件夹一个人做网站赚钱
  • 如何自己做外贸网站桂林漓江官网
  • 怎么做电影流量网站吗厦门海沧建设局网站
  • 北京 网站建设合肥网站优化选哪家
  • 淘宝上买的建设网站能退款吗中国建设建筑教育网站
  • 知名网站设计服务商网站制作的公司哪家效果好
  • 电商平台建站赣州章贡区景点
  • 教学系统设计 网站开发现在流行做网站吗
  • 大连网站建设策划网站建设 广州网站建设专业公司
  • 织梦cms小说网站采集为什么打开网址都是seo综合查询
  • 学校网站建设特色湖北田源建设工程有限公司网站
  • 免费注册域名网站推荐怎么看网站用哪个系统做的
  • 怎样做ppt建网站淄博网站推广
  • 淄博网站建设-中国互联怎么进入外网
  • 金华高端网站设计网站备案号查电话号码
  • 为新创业公司建设网站企业网站能个人备案吗
  • 可做推广的网站封面设计网站
  • iis7 网站权限重庆找工作哪个网站好
  • 化妆品网站程序保定建设银行网站首页
  • 建设项目环保验收平台网站网页制作论文3000字
  • 潍坊网站设计制作棋牌源码交易商城
  • 北京建设执业网站烟台app开发公司
  • 绍兴网站制作方案定制seo快速排名的方法
  • 网站制作设计说明app开发和网站开发一样么
  • 企业网站建设方案文档百度ai搜索引擎