淺拷貝:只復制物件的參考,而不復制物件的結構,此時拷貝物件與被拷貝物件的參考指向同一個物件(也可理解為同一個記憶體地址),兩者之中任一個物件發生變化,另一個物件也會跟著變化,
淺拷貝的用法在System.Collections命名空間中使用的比較多,一方面是因為創建一份大物件的副本對性能有影響;另一方面是因為集合物件型別不一定都是可克隆的,倘若物件中出現回圈參考(即型別為T的物件A中存在型別為T的屬性/欄位)將會導致深拷貝程序出現死回圈,
深拷貝:復制物件的結構,使拷貝物件的參考指向復制物件,此時拷貝物件與被拷貝物件的參考指向不同的物件,兩者之中任一個發生變化,另一個不受影響,
我們常用的Json序列化與反序列化就是一種深拷貝,
下面用兩幅圖表示一下深拷貝與淺拷貝的差異:


轉載請註明出處,本文鏈接:https://www.uj5u.com/net/105797.html
標籤:C#
