c#淺複製與深複製
淺複製
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class light : ICloneable
{
public int[] v ={ 1, 2, 3 };
public object clone()
{
return this.MemberwiseClone();
}
public void display()
{
foreach (int i in v)
{
Console.WriteLine(i);
}
}
#region ICloneable 成員
public object Clone()
{
throw new Exception("The method or operation is not implemented.");
}
#endregion
}
//客戶端
class Program
{
static void Main(string[] args)
{
light l1 = new light();
light l1copy = (light)l1.clone();
l1.v[0] = 8;
l1copy.display();
Console.ReadKey();
}
}
}
}
深複製
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
public class light : ICloneable
{
public int[] v ={ 1, 2, 3 };
//預設建構函式
public light()
{
}
//用於深複製與的私有建構函式
private light(int[] v)
{
this.v =(int[])v.Clone();
}
public void display()
{
foreach (int i in v)
{
Console.WriteLine(i);
}
}
#region ICloneable 成員
public object Clone()
{
return new light(this.v);//此呼叫了上述的私有建構函式
//throw new Exception("The method or operation is not implemented.");
}
#endregion
}
//客戶端
class Program
{
static void Main(string[] args)
{
light l1 = new light();//先產生原型物件
light l1copy = (light)l1.Clone();然後透過上述原型物件的clone方法會去呼叫私有建構函式進而複製l1為另一個新的物件
l1.v[0] = 8;
l1copy.display();
Console.ReadKey();
}
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-732313/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JavaScript中的淺複製與深複製JavaScript
- Java引用複製、淺複製、深複製Java
- JS物件複製:深複製和淺複製JS物件
- JavaScript 淺複製和深複製JavaScript
- go slice深複製和淺複製Go
- js 淺拷貝(淺複製、淺克隆)、深拷貝(深複製、深克隆)JS
- 淺談JS中物件的淺複製和深複製JS物件
- 淺顯直白的Python深複製與淺複製區別說明Python
- 對於複製普通物件 深複製和淺複製是否一樣物件
- 詳談Javascript中的深複製和淺複製JavaScript
- js 實現深複製/深複製JS
- 設計模式-原型模式(Prototype)【重點:淺複製與深複製】設計模式原型
- Java中物件的深複製和淺複製詳解Java物件
- python 的深淺複製Python
- Python中的賦值與淺複製與深複製之間的關係Python賦值
- Python 列表切片陷阱:引用、複製與深複製Python
- Python列表的深淺複製Python
- 一文帶你瞭解js資料儲存及深複製(深拷貝)與淺複製(淺拷貝)JS
- 深入理解JavaScript之深淺複製JavaScript
- 聊一聊web前端那些事兒,關於深複製和淺複製Web前端
- 整明白 Golang slice 宣告方式、淺複製現象、深複製、append操作GolangAPP
- js物件深複製JS物件
- 面試題分解—「淺複製/深複製、定義屬性使用copy還是strong ?」面試題
- Python面試必備一之迭代器、生成器、淺複製、深複製Python面試
- MySQL 8 複製(三)——延遲複製與部分複製MySql
- Go 語言傳值和深淺複製問題Go
- vue物件的深層複製Vue物件
- 深入剖析 JavaScript 的深複製JavaScript
- MySQL 8 複製(四)——GTID與複製MySql
- MySQL主從複製與主主複製MySql
- 深入淺出MongoDB複製MongoDB
- MySQL 8 複製(十)——組複製效能與限制MySql
- 尾遞迴實現深複製遞迴
- JS 物件如何實現深複製JS物件
- 多種情況解析深複製
- 深層複製建構函式函式
- JavaScript之structuredClone現代深複製JavaScriptStruct
- poi操作excel,複製sheet,複製行,複製單元格,複製styleExcel