Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

คุณจะทำสำเนาลึกของวัตถุใน .NET ได้อย่างไร


สำเนาลึกทำซ้ำทุกอย่าง สำเนาลึกของคอลเลกชั่นคือคอลเลกชั่นสองคอลเลกชั่นโดยที่องค์ประกอบทั้งหมดในคอลเลกชั่นดั้งเดิมซ้ำกัน

Deep Copy ใช้สำหรับสร้างสำเนาแบบลึกที่สมบูรณ์ของประเภทการอ้างอิงภายใน

กล่าวอีกนัยหนึ่งสำเนาลึกเกิดขึ้นเมื่อวัตถุถูกคัดลอกพร้อมกับวัตถุที่อ้างถึง

ตัวอย่าง

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;
      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();
   }
}

ผลลัพธ์

10 10
5 10