.NET框架-Clone什么

作者:vuefine
文献:msdn
平台:.NET 2.0+


  .NET中有很多对象都实现了IClonable接口,这意味着它们能实现复制功能,比如说ArrayList对象( 用C#描述数据结构3:ArrayList),或自己编写实现了IClonable接口的对象。

  查看ArrayList中关于Clone方法的介绍:

创建 System.Collections.ArrayList 的浅表副本。

  很好奇,浅表副本的概念,上msdn查阅后,解释的意思比较晦涩一点,浅表复制集合是指仅仅复制集合元素,不管元素是值类型还是引用类型,但是Clone并不会复制对象(引用指向的对象)。新Clone后的集合中,引用还是指向同一个对象(原来集合中引用指向的对象)。

A shallow copy of a collection copies only the elements of the collection, whether they are reference types or value types, but it does not copy the objects that the references refer to. The references in the new collection point to the same objects that the references in the original collection point to.

  一句话概括,Clone实现的所谓浅表副本,Clone出来的对象复制了值类型,复制了引用,而未复制引用对象。这个时候,可能就要问了,未复制引用对象是什么意思?通过代码是最好说明问题的,请看下面的代码,

        
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值