淺層複本

摘要:淺層複本

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個變數之間沒有任何的交叉參考)