如果带有“?:”的子句

时间:2012-10-11 19:09:12

标签: c# if-statement

  

可能重复:
  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>' 

为什么呢?

2 个答案:

答案 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应该是什么