深拷贝和浅拷贝.docxVIP

  • 0
  • 0
  • 约5.42千字
  • 约 5页
  • 2023-09-07 发布于四川
  • 举报
浅析C#深拷贝与浅拷贝 ?1.深拷贝与浅拷贝 ? 拷贝即是通常所说的复制(Copy)或克隆(Clone),对象的拷贝也就是从现有对象复制一个“一模一样”的新对象出来。虽然都是复制对象,但是不同的 复制方法,复制出来的新对象却并非完全一模一样,对象内部存在着一些差异。通常的拷贝方法有两种,即深拷贝和浅拷贝,那二者之间有何区别呢?MSDN里对 IClone接口的Clone方法有这样的说明:在深层副本中,所有的对象都是重复的;而在浅表副本中,只有顶级对象是重复的,并且顶级以下的对象包含引 用。可以看出,深拷贝和浅拷贝之间的区别在于是否复制了子对象。这如何理解呢?下面我通过带有子对象的代码来验证二者的区别。 首先定义两个类型:Student和ClassRoom,其中Student类型里包含ClassRoom,并使这两个类型都分别实现自定义的深拷贝接口(IDeepCopy)和浅拷贝接口(IShallowCopy)。 类图如下: 定义代码如下: 定义代码 /// summary /// 深拷贝接口 /// /summary interface IDeepCopy { object DeepCopy(); } /// summary /// 浅拷贝接口 /// /summary interface ISh

文档评论(0)

1亿VIP精品文档

相关文档