可能重复:
Nullable types and the ternary operator: why is `? 10 : null` forbidden?
我想根据一个案例(你可以在下面看到)为x(这是一个可以为空的整数)赋值或空值
int? x;
x = stackoverflow.ToString() != "" ? int.Parse(stackoverflow.ToString()) : null;
但它给出了以下错误。
Type of conditional expression cannot be determined because there is no implicit conversion between 'int' and '<null>'
为什么呢?
答案 0 :(得分:4)
将int转换为可为空的int。
x = stackoverflow.ToString() != "" ?
(int?)int.Parse(stackoverflow.ToString()) : null;
答案 1 :(得分:1)
试试这个:
x = stackoverflow.ToString() != "" ? int.Parse(stackoverflow.ToString()) : (int?) null;
看看是否有效。我没有测试它,因为我不知道stackoverflow
应该是什么