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

Enumeration (Enum) ใน C# คืออะไร

Enum (Enumeration) คือ Value Type ที่กำหนดชุดค่าคงที่มีชื่อ (Named Constants) เช่น วัน, เดือน, สถานะ, สี

Syntax

enum EnumName
{
    Value1,
    Value2,
    Value3 = 10, // กำหนดค่าเองได้
    Value4       // 11 (Auto Increment)
}

ตัวอย่างพื้นฐาน

using System;

public class Demo
{
    public enum Vehicle { Car, Bus, Truck }
    
    public static void Main()
    {
        int a = (int)Vehicle.Car;    // 0
        int b = (int)Vehicle.Bus;    // 1
        int c = (int)Vehicle.Truck;  // 2
        
        Console.WriteLine("Car = {0}", a);
        Console.WriteLine("Bus = {0}", b);
        Console.WriteLine("Truck = {0}", c);
    }
}

คุณสมบัติสำคัญ

  • ค่าเริ่มต้น: 0, 1, 2, ... (Auto Increment)
  • Underlying Type: int (Default) สามารถเปลี่ยนได้: enum Color : byte
  • Type Safety: Vehicle v = 5; ❌ Error, ต้อง Cast
  • Flags Attribute: สำหรับ Bitwise Combination

เมธอด Enum ที่ใช้บ่อย

เมธอดคำอธิบาย
Enum.GetNames<T>()Array ของชื่อทั้งหมด
Enum.GetValues<T>()Array ของค่าทั้งหมด
Enum.IsDefined<T>(value)ตรวจสอบว่ามีค่านี้ใน Enum
Enum.Parse<T>(string)แปลง String เป็น Enum
Enum.TryParse<T>(string, out)Parse อย่างปลอดภัย
value.ToString()ชื่อของ Enum Value

ตัวอย่าง Flags Enum

[Flags]
public enum Permissions
{
    None = 0,
    Read = 1,
    Write = 2,
    Execute = 4,
    All = Read | Write | Execute // 7
}

Permissions p = Permissions.Read | Permissions.Write;
Console.WriteLine(p); // "Read, Write"
Console.WriteLine((int)p); // 3