0Pricing
C# Academy · บทเรียน

การแปลงและแยกวิเคราะห์ Enum

แปลงค่าระหว่าง Enum จำนวนเต็ม และสตริง

การแปลงและแยกวิเคราะห์ Enum เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

อีนัมเป็นจำนวนเต็ม

แปลงอีนัมเป็นชนิดข้อมูลพื้นฐานด้วย (int) เพื่อรับค่าตัวเลข

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        int n = (int)Level.High;
        Console.WriteLine(n);
    }
}

จำนวนเต็มเป็นอีนัม

แปลงตัวเลขกลับเป็นชนิดอีนัม ค่านั้นไม่จำเป็นต้องเป็นสมาชิกที่กำหนดไว้ จึงควรตรวจสอบเมื่อจำเป็น

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        Level l = (Level)2;
        Console.WriteLine(l);
    }
}

การตรวจสอบด้วย IsDefined

Enum.IsDefined ยืนยันว่าตัวเลขหรือชื่อสอดคล้องกับสมาชิกจริง ก่อนที่คุณจะนำไปใช้อย่างไว้วางใจได้

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        Console.WriteLine(Enum.IsDefined(typeof(Level), 1));
        Console.WriteLine(Enum.IsDefined(typeof(Level), 9));
    }
}

อีนัมเป็นสตริง

ToString ส่งคืนชื่อสมาชิก ซึ่งมีประโยชน์สำหรับการแสดงผลและการบันทึกข้อมูล

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        Console.WriteLine(Level.Medium.ToString());
    }
}

การแยกวิเคราะห์จากสตริง

Enum.Parse แปลงชื่อกลับเป็นค่าอีนัม แต่จะแสดงข้อผิดพลาดหากชื่อไม่ถูกต้อง

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        Level l = (Level)Enum.Parse(typeof(Level), "High");
        Console.WriteLine(l);
    }
}

การแยกวิเคราะห์แบบทั่วไป

รูปแบบทั่วไป Enum.Parse<T> ไม่ต้องแปลงชนิดเพิ่มเติมและอ่านได้อย่างชัดเจน

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        Level l = Enum.Parse<Level>("Medium");
        Console.WriteLine(l);
    }
}

การแยกวิเคราะห์อย่างปลอดภัยด้วย TryParse

Enum.TryParse ส่งคืนค่าบูลีนเพื่อระบุความสำเร็จแทนการแสดงข้อผิดพลาด จึงปลอดภัยกว่าสำหรับข้อมูลป้อนเข้าจากผู้ใช้

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        if (Enum.TryParse<Level>("Low", out var result))
            Console.WriteLine("Parsed: " + result);
    }
}

การจัดการข้อมูลป้อนเข้าที่ไม่ถูกต้อง

เมื่อการแยกวิเคราะห์ล้มเหลว TryParse จะส่งคืนค่า false เพื่อให้คุณตอบสนองได้อย่างเหมาะสม

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        bool ok = Enum.TryParse<Level>("Unknown", out var result);
        Console.WriteLine(ok ? result.ToString() : "Invalid input");
    }
}

การแยกวิเคราะห์โดยไม่คำนึงถึงตัวพิมพ์เล็กใหญ่

ส่งค่า true เพื่อไม่สนใจตัวพิมพ์เล็กใหญ่ขณะแยกวิเคราะห์ข้อความที่ผู้ใช้ป้อน

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        Level l = Enum.Parse<Level>("high", true);
        Console.WriteLine(l);
    }
}

TryParse เหมาะกว่า IsDefined สำหรับชื่อ

สำหรับการแยกวิเคราะห์ชื่อ TryParse จะจัดการทั้งการตรวจสอบความถูกต้องและการแปลงค่าในการเรียกใช้ครั้งเดียว

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        string input = "Medium";
        if (Enum.TryParse<Level>(input, out var lvl) && Enum.IsDefined(typeof(Level), lvl))
            Console.WriteLine("Valid: " + lvl);
    }
}

การแปลงไปกลับ

คุณสามารถแปลงอีนัมเป็น int แล้วแปลงกลับ หรือแปลงเป็นสตริงแล้วแปลงกลับได้ ตราบใดที่ค่าเหล่านั้นถูกต้อง

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        Level start = Level.High;
        int num = (int)start;
        Level back = (Level)num;
        Console.WriteLine(start == back);
    }
}

ตรวจสอบความเข้าใจ

ทดสอบความรู้เกี่ยวกับการแปลงและการแยกวิเคราะห์อีนัม

สรุปทบทวน

แปลงระหว่างอีนัมกับจำนวนเต็มพื้นฐานด้วย (int) และ (EnumType) และใช้ Enum.IsDefined เพื่อตรวจสอบความถูกต้อง ToString จะส่งคืนชื่อสมาชิก

แยกวิเคราะห์ชื่อกลับด้วย Enum.Parse<T> ซึ่งแสดงข้อผิดพลาดเมื่อไม่สำเร็จ หรือใช้ Enum.TryParse<T> ที่ปลอดภัยกว่าและส่งคืนค่าบูลีน โดยเลือกไม่คำนึงถึงตัวพิมพ์เล็กใหญ่ได้

คำถามที่พบบ่อย

บทเรียน “การแปลงและแยกวิเคราะห์ Enum” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การแปลงและแยกวิเคราะห์ Enum” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การแปลงและแยกวิเคราะห์ Enum”

แปลงค่าระหว่าง Enum จำนวนเต็ม และสตริง คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การแปลงและแยกวิเคราะห์ Enum” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม

ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การกำหนดและใช้งาน Enum
  2. Enum แบบ Flags และการรวมค่าระดับบิต
  3. การแปลงและแยกวิเคราะห์ Enum
  4. การวนซ้ำค่าของ Enum
← กลับไปที่ C# Academy