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

Enum ด้วยค่าที่ปรับแต่งเอง (Custom Values) ใน C#

Enum (Enumeration) ใน C# ใช้จัดกลุ่มค่าคงที่ที่มีชื่อ โดยค่าเริ่มต้นจะเริ่มจาก 0 และเพิ่มทีละ 1 แต่สามารถกำหนดค่าเองได้

การกำหนดค่าเอง

public enum Vehicle
{
    Car = 20,      // เริ่มที่ 20
    Motorcycle,    // 21 (อัตโนมัติ +1)
    Bus,           // 22
    Truck          // 23
}

ตัวอย่างสมบูรณ์

using System;

public class Demo
{
    public enum Vehicle
    {
        Car = 20,
        Motorcycle,
        Bus,
        Truck
    }
    
    public static void Main()
    {
        int a = (int)Vehicle.Car;        // 20
        int b = (int)Vehicle.Motorcycle; // 21
        int c = (int)Vehicle.Bus;        // 22
        int d = (int)Vehicle.Truck;      // 23
        
        Console.WriteLine($"Car = {a}");
        Console.WriteLine($"Motorcycle = {b}");
        Console.WriteLine($"Bus = {c}");
        Console.WriteLine($"Truck = {d}");
    }
}

ผลลัพธ์

Car = 20
Motorcycle = 21
Bus = 22
Truck = 23

คุณสมบัติเพิ่มเติม

  • สามารถกำหนดค่าไม่เรียงลำดับได้: First = 10, Second = 5, Third = 20
  • สามารถกำหนดค่าซ้ำได้ (แต่ไม่แนะนำ): A = 1, B = 1
  • ใช้ Flag Attribute สำหรับ Bitwise Combination: [Flags] enum Permissions { Read = 1, Write = 2, Execute = 4 }
  • Underlying Type เริ่มต้นคือ int เปลี่ยนได้: enum Color : byte { Red, Green, Blue }

การแปลงค่า

Vehicle v = Vehicle.Car;
int val = (int)v;           // Enum → int
Vehicle v2 = (Vehicle)20;   // int → Enum
string name = v.ToString(); // Enum → string ("Car")
Vehicle v3 = Enum.Parse<Vehicle>("Car"); // string → Enum