ภาพรวม
เมธอด CharEnumerator.Clone() ใน C# ใช้สร้างสำเนาของออบเจ็กต์ CharEnumerator ปัจจุบัน เมธอดนี้คืนค่าเป็นออบเจ็กต์ใหม่ที่มีสถานะเหมือนเดิม ทำให้สามารถวนรอบข้อความเดียวกันได้หลายครั้งโดยไม่ส่งผลต่อตัวแปรนับเดิม
ไวยากรณ์
public object Clone();
ตัวอย่างการใช้งาน
ตัวอย่างต่อไปนี้สาธิตการใช้ Clone() เพื่อสร้างสำเนาของตัวนับอักขระและวนรอบข้อมูลแยกกัน:
using System;
public class Demo
{
public static void Main()
{
string strNum = "356";
CharEnumerator ch = strNum.GetEnumerator();
while (ch.MoveNext())
{
Console.Write(ch.Current + " ");
// สร้างสำเนาของตัวนับปัจจุบัน
CharEnumerator enumClone = (CharEnumerator)ch.Clone();
// วนรอบด้วยตัวนับที่โคลนมา
while (enumClone.MoveNext())
Console.Write(enumClone.Current + " ");
Console.WriteLine();
}
}
}ผลลัพธ์
โค้ดข้างต้นจะให้ผลลัพธ์ดังนี้:
3 5 6 5 6 6
คำอธิบายผลลัพธ์
- รอบแรก: ตัวนับหลักอ่าน '3' → โคลนอ่าน '3 5 6' → แสดง:
3 3 5 6 - รอบที่สอง: ตัวนับหลักอ่าน '5' → โคลนอ่าน '5 6' → แสดง:
5 5 6 - รอบที่สาม: ตัวนับหลักอ่าน '6' → โคลนอ่าน '6' → แสดง:
6 6 - รวมทั้งหมด:
3 5 6 5 6 6
ข้อสังเกตสำคัญ
- เมธอด
Clone()คืนค่าเป็นobjectจึงต้องแปลงชนิด (cast) เป็นCharEnumeratorก่อนใช้งาน - ตัวนับที่โคลนมาจะเริ่มจากตำแหน่งปัจจุบันของตัวนับต้นฉบับ
- เหมาะสำหรับสถานการณ์ที่ต้องวนรอบข้อมูลเดียวกันหลายครั้งพร้อมกัน