Tôi có một enum cờ dưới đây.Cách so sánh cờ trong C#?
[Flags]
public enum FlagTest
{
None = 0x0,
Flag1 = 0x1,
Flag2 = 0x2,
Flag3 = 0x4
}
Tôi không thể đưa ra tuyên bố nếu được đánh giá là đúng.
FlagTest testItem = FlagTest.Flag1 | FlagTest.Flag2;
if (testItem == FlagTest.Flag1)
{
// Do something,
// however This is never true.
}
Làm cách nào để tôi thực hiện điều này?
Đúng tôi nếu tôi là sai, là 0 thích hợp để được được sử dụng làm giá trị cờ? – Roylee
@Roylee: 0 là chấp nhận được và bạn nên có cờ "Không" hoặc "Không xác định" để kiểm tra không có cờ nào được đặt. Nó không cần thiết, nhưng đó là một thực hành tốt. Điều quan trọng cần nhớ về điều này được Leonid chỉ ra trong câu trả lời của anh ta. – Andy
@Roylee Nó thực sự được đề nghị bởi Microsoft để cung cấp một lá cờ 'None' với giá trị bằng không. Xem http://msdn.microsoft.com/en-us/library/vstudio/ms229058(v=vs.100).aspx – ThatMatthew