什麼是淺複製以及它如何不同於 C# 中的深複製?
淺複製 −
物件的淺複製複製“主”物件,但不復制內部物件。
“內部物件”在原始物件及其副本之間共享。
淺複製的問題在於這兩個物件不獨立。如果您修改其中一個物件,則更改將反映在另一個物件中。
深複製 −
深複製是物件的完全獨立複製。如果我們複製我們的物件,我們將複製整個物件結構。
如果您修改其中一個物件,則更改不會反映在另一個物件中。
示例
class Program{
static void Main(string[] args){
//Shallow Copy
ShallowCopy obj = new ShallowCopy();
obj.a = 10;
ShallowCopy obj1 = new ShallowCopy();
obj1 = obj;
Console.WriteLine("{0} {1}", obj1.a, obj.a); // 10,10
obj1.a = 5;
Console.WriteLine("{0} {1}", obj1.a, obj.a); //5,5
//Deep Copy
DeepCopy d = new DeepCopy();
d.a = 10;
DeepCopy d1 = new DeepCopy();
d1.a = d.a;
Console.WriteLine("{0} {1}", d1.a, d.a); // 10,10
d1.a = 5;
Console.WriteLine("{0} {1}", d1.a, d.a); //5,10
Console.ReadLine();
}
}
class ShallowCopy{
public int a = 10;
}
class DeepCopy{
public int a = 10;
}輸出
10 10 5 5 10 10 5 10
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP