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