Enum là kiểu dữ liệu liệt kê. Giúp bạn tổ chức dữ liệu khoa học hơn, code được trong sáng dễ hiểu hơn.
Enum là kiểu dữ liệu liệt kê. Giúp bạn tổ chức dữ liệu khoa học hơn, code được trong sáng dễ hiểu hơn.
Đầu tiên cùng xét một ví dụ đơn gián:
class EnumTest1
{
//đầu tiên bạn tạo ra một enum, với giá trị khởi đầu là ‘none’
enum StackTag
{
None, // giá trị mặc định là 0.
BoldTag, // 1
ItalicsTag, // 2
HyperlinkTag, // và 3.
};
// cách sử dụng kiểu enum
public EnumTest1()
{
// một đối tượng generic sử dụng một enum
Stack stack = new Stack();
stack.Push(StackTag.BoldTag); // thêm một phần tử vào stack
stack.Push(StackTag.ItalicsTag); // Phần tử thứ 2
StackTag thisTag = stack.Pop(); // Phần tử cuối
}
}
Bạn có thể lấy tên tùy ý cho enum miễn là phải có từ khóa enum, Chúng ta không gán một số cho một phần tử của enum, nó sẽ mặc định là bắt đầu từ 0 và tự động tăng.
Chúng ta có thể sử dụng Generic collections với enum. Hoặc List cũng có thể được thay thế. Đây là một kĩ thuật hiệu quả.
Enum là một kiểu giá trị tùy chỉnh được lưu trong stack và được khởi tạo từ 0.
In ra tên của enum.
Trong C#, bạn có một số tên cho enums. Có thể là “None”, “Hidden”, và “Visible”. Nó được nhớ bởi C# và không được sửa lại như một số biến khác. Do vậy chúng ta có thể dùng code in chúng ra
// Enum này có giá trị mặc định
enum VisibleType
{
None = 0, // Nên là 0
Hidden = 2, // có thể là một số bất kì
Visible = 4
};
enum BugEnum
{
Cat = 1,
Dog = 2
};
// in ra tên của enum
public void Example_ToString()
{
BugEnum bugEnum = BugEnum.Dog;
VisibleType visEnum = VisibleType.Hidden;
// chúng ta có 2 enum và muốn in ra tên của chúng
Console.WriteLine(bugEnum.ToString() + “, ” + visEnum.ToString());
// Kết quả “Dog, Hidden”.
}
Chuyển kiểu string về enum
Bạn phải sử dụng phương thức Enum.Parse. Toán tử typeof dùng để truyền tham số cho hàm Parse – xác định enum nào?
public void Example_Parse()
{
// Chúng ta có một string có tên trùng với tên một enum.
string dogString = “Dog”;
// Chuyển nó về kiểu enum dùng Parse
BugEnum bugEnum = (BugEnum)Enum.Parse(typeof(BugEnum), dogString);
if (bugEnum == BugEnum.Dog)
{
// xâu đã được chuyển đổi và chúng ta có 2 giá trị là dog
Console.WriteLine(“Both are dog values.”);
}
}
Sử dụng câu lệnh Switch với Enums.
Bạn sử dụng switch trong trường hợp một enum là một tập con của một dải enum.
public enum StackTag
{
None,
BoldTag,
ItalicsTag,
HyperlinkTag
};
public static bool IsFormatTag(StackTag tag)
{
switch (tag)
{
case StackTag.BoldTag:
case StackTag.ItalicsTag:
return true;
default:
return false;
}
}
Phản hồi gần đây