"Значення" коливається від 0 до 15 (можливі його значення). Коли будуть виконані ці 4 "якщо" умови? Якщо моє (int) значення = 2, це означає 0010?
if ((int)value & 0x1)
{
//statement here
}
if ((int)value & 0x2)
{
//statement here
}
if ((int)value & 0x4)
{
//statement here
}
if ((int)value & 0x8)
{
//statement here
}
Enum.HasFlag
метод для тестування на біти. Див: Enum.HasFlag .
value
(читайтеif(value & 0x4)
як "Чи є третій бітvalue
набору (= 1)). Оскільки у вас, здавалося б, є проблеми з розумінням коду, я припускаю, що він не ваш. Це (і те, що ви не запитуєте для огляду) робить це питання не по темі для CR.SE .