Есть ли причина, по которой я не могу использовать следующий код?
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
не может? - person Dan Forbes   schedule 30.09.2015false ? 0 : 1
является константным выражением. Этоreturn a == b ? 0 : 1
нет. Константное выражение типаint
можно неявно преобразовать вulong
, если оно соответствует диапазонуulong
. - person user4003407   schedule 30.09.2015return 1
- person M.kazem Akhgary   schedule 30.09.2015