Възможен дубликат:
Защо този код е невалиден в 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;
Как се определя типът на троичния оператор?