Tôi hiểu làm thế nào Enums làm việc trong C#, và tôi nhận được những gì các thuộc tính Flags mang đến cho bảng.Có nhiều cách để xác định C# Enums với thuộc tính [Flags]?
Tôi đã thấy câu hỏi này, here. Đề xuất hương vị đầu tiên, nhưng không cung cấp bất kỳ lý do/biện minh nào cho nó.
Có sự khác biệt nào trong cách thức hai yếu tố này được xác định hay không, liệu có tốt hơn cách khác không? Những lợi thế để sử dụng synax đầu tiên thay vì thứ hai là gì? Tôi đã luôn luôn sử dụng hương vị thứ hai khi xác định Flags loại Enums ... tôi đã làm điều đó sai tất cả thời gian này?
[Serializable]
[Flags]
public enum SiteRoles
{
User = 1 << 0,
Admin = 1 << 1,
Helpdesk = 1 << 2
}
Có phải đó là không giống như
[Serializable]
[Flags]
public enum SiteRoles
{
User = 1,
Admin = 2,
Helpdesk = 4
}
Mã IL được tạo cho 2 đoạn mã này giống nhau. –
Phát hiện lỗi trong mã này: BackupOperator = 1073714824. Bạn có thể tránh lỗi ở nơi đầu tiên bằng cách nói BackupOperator = 1 << 30 –
Cảm ơn tất cả thông tin, tôi sẽ sử dụng aproach đầu tiên, vì nó có vẻ tốt hơn cho tất cả trừ những trường hợp đơn giản nhất. – Nate