Я заметил эти два шаблона для проверки флага enum:
[Flags]
public enum PurchaseType
{
None = 0,
SalePrice = 2,
RegularPrice = 4,
Clearance = 8,
CreditCard = 16
}
public void Test()
{
PurchaseType type = PurchaseType.Clearance;
type |= PurchaseType.CreditCard;
// Practice 1
if ((type & PurchaseType.Clearance) == PurchaseType.Clearance)
{
// Clearance item handling
}
// Practice 2
if ((type & PurchaseType.CreditCard) != 0)
{
// Credit card item handling
}
}
Из двух способов проверки флага enum, какой из них лучше w.r.t производительность, читаемость, здоровье кода и любые другие соображения, которые я должен сделать?
Спасибо, Mohammed