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