O "valor" varia de 0 a 15 (seus valores possíveis). Quando essas 4 condições "se" serão atendidas? Se meu (int) valor = 2, isso significa 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
método para testar bits. Veja: Enum.HasFlag .
value
(leia-seif(value & 0x4)
"É o terceiro bit dovalue
conjunto (= 1)). Como você aparentemente tem problemas para entender o código, presumo que ele não seja o seu. Isso (e o fato de você não estar perguntando para revisão) faz esta pergunta off-topic para CR.SE .