浅层复本

摘要:浅层复本


MSDN常常会出一些很难懂的名词,只好用实例来体会!!
很想画图内存表示图,无奈不知道有什么工具比较好画。@@a

 
Arr_1[1] 重新给值前与Arr_2[1]所参考的是同一对象,因字符串特性的关系,给值后所参考的对象就不一样了。

Clone 方法会建立一个浅层复本,所以代表 Arr_1 与 Arr_2 变量所参的数组空间不同,
但二个数组中的元素所参考的对象是相同的~~(听起来还是很抽象吧>"<)
再看一个范例:


二数组中元素是存放 Test_1 类的对象,因此Arr_3 与 Arr_4 所参考的数组空间虽然不同,
但数组中元素所参数的对象是相同的 ( Arr_3[1] 与 Arr_4[1] 所参考的是同一对象)

 
Arr_6 = Arr_5 这种给值方式不同于 Clone,在内存中只有一个数组空间 ,
Arr_5 与 Arr_6 所参考的是同一数组空间

说完了~"~
还是很不好懂吧,如果有图就好多了,发挥想像力吧

(ps:深层复本,就代表完全分离,2个变量之间没有任何的交叉参考)

原文:大专栏  浅层复本


猜你喜欢

转载自www.cnblogs.com/petewell/p/11526702.html