System.Array ใช้อินเทอร์เฟซ เช่น ICloneable, IList, ICollection และ IEnumerable เป็นต้น อินเทอร์เฟซ ICloneable จะสร้างสำเนาของวัตถุที่มีอยู่ เช่น โคลน
ให้เราดูเรียนรู้เกี่ยวกับอินเทอร์เฟซ ICloneable มันมีเมธอด Clone() เท่านั้นเพราะมันสร้างวัตถุใหม่ที่เป็นสำเนาของอินสแตนซ์ปัจจุบัน
ต่อไปนี้คือตัวอย่างที่แสดงวิธีการโคลนโดยใช้อินเทอร์เฟซแบบแยกส่วนได้ -
ตัวอย่าง
using System;
class Car : ICloneable {
int width;
public Car(int width) {
this.width = width;
}
public object Clone() {
return new Car(this.width);
}
public override string ToString() {
return string.Format("Width of car = {0}",this.width);
}
}
class Program {
static void Main() {
Car carOne = new Car(1695);
Car carTwo = carOne.Clone() as Car;
Console.WriteLine("{0}mm", carOne);
Console.WriteLine("{0}mm", carTwo);
}
} ให้เรามาดูวิธีการใช้ Array.Clone ใน C# เพื่อโคลนอาร์เรย์ -
ตัวอย่าง
using System;
class Program {
static void Main() {
string[] arr = { "one", "two", "three", "four", "five" };
string[] arrCloned = arr.Clone() as string[];
Console.WriteLine(string.Join(",", arr));
// cloned array
Console.WriteLine(string.Join(",", arrCloned));
Console.WriteLine();
}
}