Trừ khi bạn có lý do chính đáng để sử dụng các giá trị thô, bạn chỉ nên sử dụng các giá trị ngầm định và tham chiếu chúng với Status.Active
và Status.Inactive
.
Điều hấp dẫn là bạn có thể muốn lưu trữ dữ liệu trong một tệp phẳng hoặc DB hoặc sử dụng một tệp phẳng hoặc DB mà người khác đã tạo. Nếu bạn tự làm, hãy làm cho nó để đánh số phù hợp với những gì Enum được sử dụng cho.
Nếu dữ liệu không phải là của bạn, tất nhiên bạn sẽ muốn sử dụng bất cứ thứ gì mà nhà phát triển ban đầu đã sử dụng làm sơ đồ đánh số.
Nếu bạn đang dự định sử dụng Enum như một bộ cờ, có một quy ước đơn giản đáng để tuân theo:
enum Example
{
None = 0, // 0
Alpha = 1 << 0, // 1
Beta = 1 << 1, // 2
Gamma = 1 << 2, // 4
Delta = 1 << 3, // 8
Epsilon = 1 << 4, // 16
All = ~0, // -1
AlphaBeta = Alpha | Beta, // 3
}
Các giá trị phải là lũy thừa của hai và có thể được biểu thị bằng các phép toán bit-shift. None
, rõ ràng là nên 0
, nhưng All
ít rõ ràng hơn -1
. ~0
là phủ định nhị phân 0
và kết quả là một số có mọi bit được đặt thành 1
, đại diện cho một giá trị-1
. Đối với cờ ghép (thường được sử dụng để thuận tiện), các giá trị khác có thể được hợp nhất bằng cách sử dụng bitwise hoặc toán tử |
.