System.Array Implement Interfaces เช่น ICloneable, IList, ICollection, IEnumerable เป็นต้น ICloneable ใช้สร้าง Clone (คัดลอก) ของออบเจกต์
ICloneable Interface
มีเพียงเมธอด Clone() สำหรับสร้างออบเจกต์ใหม่ที่เป็นคัดลอกของ Instance ปัจจุบัน
ตัวอย่าง: Cloning ด้วย ICloneable
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()
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));
Console.WriteLine(string.Join(",", arrCloned));
}
}