Есть ли причина, по которой я не могу использовать следующий код?return ulong in inline-if
ulong test(int a, int b)
{
return a == b ? 0 : 1;
}
Он показывает мне:
Cannot implicitly convert type 'int' to 'ulong'. An explicit conversion exists (are you missing a cast?)
Ниже будет работать:
ulong test(int a, int b)
{
return false ? 0 : 1;
}
Я знаю, как решить эту проблему. Я просто хочу знать причину.
Спасибо.
В последнем блоке кода он работает, если вы замените 'false' на' true'? Может быть, есть какая-то причина, что '1' может быть неявно преобразован на' 0', не может? –
Уже протестировано, это не имеет значения. –
Это 'false? 0: 1' является постоянным выражением. Это 'return a == b? 0: 1' нет. Постоянное выражение типа 'int' разрешено преобразовывать неявно в' ulong', если оно соответствует диапазону 'ulong'. – PetSerAl