Deep copies duplicate mọi thứ. Deep copy của collection là hai collections với tất cả elements trong original collection bị duplicate.
Deep Copy dùng để tạo complete deep copy của internal reference types. Nói cách khác, deep copy xảy ra khi object được copy cùng với các objects mà nó tham chiếu đến.
Ví dụ
class DeepCopy
{
public int a = 10;
}
class Program
{
static void Main()
{
// Deep Copy
DeepCopy d = new DeepCopy();
d.a = 10;
DeepCopy d1 = new DeepCopy();
d1.a = d.a; // Copy value
Console.WriteLine("{0} {1}", d1.a, d.a); // 10,10
d1.a = 5;
Console.WriteLine("{0} {1}", d1.a, d.a); // 5,10 - độc lập nhau
Console.ReadLine();
}
}
Kết quả
10 10 5 10
Khi d1.a thay đổi thành 5, d.a vẫn giữ nguyên 10 - chứng tỏ deep copy độc lập.