C# Enum
Enum trong C#
Một enum
là một "lớp" đặc biệt đại diện cho một nhóm các hằng số (biến không thể thay đổi/chỉ đọc).
Để tạo enum
, hãy sử dụng từ khóa enum
(thay vì lớp hoặc giao diện) và phân tách các mục enum bằng dấu phẩy:
Ví dụ
enum Level { Low, Medium, High }
Bạn có thể truy cập các mục enum
bằng cú pháp dấu chấm :
Level myVar = Level.Medium; Console.WriteLine(myVar);
Hãy tự mình thử »Enum là viết tắt của "enumerations", có nghĩa là "được liệt kê cụ thể".
Enum bên trong một lớp
Bạn cũng có thể có một enum
bên trong một lớp:
Ví dụ
class Program { enum Level { Low, Medium, High } static void Main(string[] args) { Level myVar = Level.Medium; Console.WriteLine(myVar); } }
Đầu ra sẽ là:
Medium
Giá trị liệt kê
Theo mặc định, mục đầu tiên của enum có giá trị 0. Mục thứ hai có giá trị 1, v.v.
Để nhận giá trị số nguyên từ một mục, bạn phải chuyển đổi rõ ràng mục đó thành int
:
Ví dụ
enum Months { January, // 0 February, // 1 March, // 2 April, // 3 May, // 4 June, // 5 July // 6 } static void Main(string[] args) { int myNum = (int) Months.April; Console.WriteLine(myNum); }
Đầu ra sẽ là:
3
Bạn cũng có thể chỉ định giá trị enum của riêng mình và các mục tiếp theo sẽ cập nhật số của chúng tương ứng:
Ví dụ
enum Months { January, // 0 February, // 1 March=6, // 6 April, // 7 May, // 8 June, // 9 July // 10 } static void Main(string[] args) { int myNum = (int) Months.April; Console.WriteLine(myNum); }
Đầu ra sẽ là:
7
Enum trong câu lệnh Switch
Enum thường được sử dụng trong câu lệnh switch
để kiểm tra các giá trị tương ứng:
Ví dụ
enum Level { Low, Medium, High } static void Main(string[] args) { Level myVar = Level.Medium; switch(myVar) { case Level.Low: Console.WriteLine("Low level"); break; case Level.Medium: Console.WriteLine("Medium level"); break; case Level.High: Console.WriteLine("High level"); break; } }
Đầu ra sẽ là:
Medium level
Tại sao và khi nào nên sử dụng Enums?
Sử dụng enum khi bạn có các giá trị mà bạn biết sẽ không thay đổi, như ngày trong tháng, ngày, màu sắc, bộ bài, v.v.