首頁 > 後端開發 > C#.Net教程 > 什麼是淺複製以及它與 C# 中的深複製有何不同?

什麼是淺複製以及它與 C# 中的深複製有何不同?

王林
發布: 2023-09-06 19:41:09
轉載
618 人瀏覽過

什么是浅复制以及它与 C# 中的深复制有何不同?

淺拷貝

淺拷貝是指拷貝一個物件的"主要"部分,但不拷貝內部的部分 objects.

The "inner objects" are shared between the original object and its copy.

The problem with the shallow copy is that the two objects are not independent. If you 修改一個對象,改變將會反映在另一個對象。

深拷貝

深拷貝是完全獨立的物件副本。如果我們複製了我們的對象, would copy the entire object structure.

If you modify the one object, the change will not be reflected in the other object.

Example

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;
}
登入後複製

##rrr
10 10
5 5
10 10
5 10
登入後複製

以上是什麼是淺複製以及它與 C# 中的深複製有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板