[C#] Shallow vs. Deep Cloning

  • 表層複製 (Shallow  Cloing):
    複製類別中的所有"數值型別成員",而"參考型別成員"則是給"參考位址",並共用原物件參考型別成員的物驗。
  • 深層複製: (Deep Cloning):
    同時複製數值型別與參考型別成員的物件。
 

附上一張圖能更清楚兩者的差異。 (圖片來源)

在C#中,無論哪種複製都可以透過實作ICloneable介面的Clone方法來完成。