Возможный дубликат:
Почему этот код недействителен в C #?
Условный оператор не может привести к неявному преобразованию?
Если я сделаю следующее:
bool someBool = false;
uint value = 0;
Это нормально:
value = (someBool) ? 0 : (uint)1;
value = (someBool) ? (uint)0 : 1;
Но это не так:
value = (someBool) ? 0 : 1;
Почему я не могу использовать последний, если могу легко сказать:
value = 0;
value = 1;
Как определяется тип тернарного оператора?