Enum trong C#
Enum trong C#
Một enum là một “lớp” đặc biệt, nó biểu thị cho một nhóm các hằng số (các biến không thay đổi/chỉ đọc).
Để tạo một enum chúng ta sử dụng từ khóa enum ( thay cho class hoặc interface), và phân tách các mục của enum bằng dấu phẩy:
Ví dụ
enum Level
{
Low,
Medium,
High
}
Bạn có thể truy xuất các mục của enum bằng dấu chấm (.):
Level myVar = Level.Medium;
Console.WriteLine(myVar);
Enum là viết tắt của từ “enumerations – bảng liệt kê”, có nghĩa là “được liệt kê cụ thể”.
Enum bên trong một lớp Class
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);
}
}
Kết quả sẽ là: Medium
Các giá trị của Enum
Theo mặc định, mục đầu tiên của một enum nhận giá trị 0. Mục thứ hai nhận giá trị 1, …
Để nhận giá trị integer (số nguyên) từ một mục, chúng ta phải thực hiện chuyển kiểu rõ (explicitly convert) từ item sang một số 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);
}
Kết quả là: 3
Chúng ta cũng có thể gán giá trị cho enum, và các mục tiếp sau sẽ cập nhật số phù hợp:
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);
}
Kết quả 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;
}
}
Kết quả là: Medium level
Tại sao và khi nào sử dụng Enum?
Chúng ta sử dụng enum khi có các giá trị mà chúng ta biết rằng chúng sẽ không thay đổi, như ngày tháng, màu sắc, …