Enum (Enumeration) trong C# là kiểu dữ liệu giá trị (value type). Enum là tập hợp các hằng số nguyên (integer constants) được đặt tên. Kiểu liệt kê được khai báo bằng từ khóa enum.
Cú pháp
enum <enum_name>
{
enumeration_list
};
Ví dụ cơ bản
enum Vehicle { Car, Bus, Truck };
Mặc định: Car=0, Bus=1, Truck=2. Có thể gán giá trị tùy chỉnh:
enum Priority { Low = 1, Medium = 5, High = 10 };
Ví dụ hoàn chỉnh
using System;
namespace Demo
{
class Program
{
enum Days { Sun, Mon, Tue, Wed, Thu, Fri, Sat };
static void Main(string[] args)
{
int weekDayStart = (int)Days.Mon;
int weekDayEnd = (int)Days.Fri;
Console.WriteLine("Thứ Hai: {0}", weekDayStart);
Console.WriteLine("Thứ Sáu: {0}", weekDayEnd);
// Duyệt tất cả giá trị enum
Console.WriteLine("\nTất cả ngày trong tuần:");
foreach (Days day in Enum.GetValues(typeof(Days)))
{
Console.WriteLine("{0} = {1}", day, (int)day);
}
Console.ReadKey();
}
}
}
Kết quả
Thứ Hai: 1 Thứ Sáu: 5 Tất cả ngày trong tuần: Sun = 0 Mon = 1 Tue = 2 Wed = 3 Thu = 4 Fri = 5 Sat = 6
Các thao tác phổ biến với Enum
Enum.GetValues(typeof(Days)): Lấy tất cả giá trịEnum.GetNames(typeof(Days)): Lấy tất cả tênEnum.Parse(typeof(Days), "Mon"): Parse string thành enumEnum.TryParse: Parse an toànEnum.IsDefined(typeof(Days), 7): Kiểm tra giá trị hợp lệ[Flags]attribute: Cho phép tổ hợp bitwise