¿El operador condicional no puede emitir implícitamente?
Estoy un poco perplejo por este pequeño capricho de C #:
Variables dadas:
Boolean aBoolValue;
Byte aByteValue;
Las siguientes compilaciones:
if (aBoolValue)
aByteValue = 1;
else
aByteValue = 0;
Pero esto no lo hará:
aByteValue = aBoolValue ? 1 : 0;
El error dice: "No se puede convertir implícitamente el tipo 'int' a 'byte'".
Y, por supuesto, esta monstruosidad compilará:
aByteValue = aBoolValue ? (byte)1 : (byte)0;
¿Que está pasando aqui?
EDITAR:
Usando VS2008, C # 3.5