Я немного взволнован этой маленькой чертой С#:
Данные переменные:
Boolean aBoolValue;
Byte aByteValue;
Следующие компиляции:
if (aBoolValue) 
    aByteValue = 1; 
else 
    aByteValue = 0;
Но это не будет:
aByteValue = aBoolValue ? 1 : 0;
Ошибка говорит: "Невозможно неявно преобразовать тип" int "в" byte ".
И, конечно же, это чудовище будет компилироваться:
aByteValue = aBoolValue ? (byte)1 : (byte)0;
Что здесь происходит?
EDIT:
Использование VS2008, С# 3.5
