Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

เมธอด CharEnumerator.Clone() ใน C#

ภาพรวม

เมธอด 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 ก่อนใช้งาน
  • ตัวนับที่โคลนมาจะเริ่มจากตำแหน่งปัจจุบันของตัวนับต้นฉบับ
  • เหมาะสำหรับสถานการณ์ที่ต้องวนรอบข้อมูลเดียวกันหลายครั้งพร้อมกัน