C#代码无法编译。 null和int之间没有隐式转换

时间:2009-08-14 17:16:52

标签: c# string null nullable

  

可能重复:
  Nullable types and the ternary operator: why is `? 10 : null` forbidden?

为什么这不起作用?看起来像有效的代码。

  string cert = ddCovCert.SelectedValue;
  int? x = (string.IsNullOrEmpty(cert)) ? null: int.Parse(cert);
  Display(x);

我该如何编码呢?该方法采用Nullable。如果下拉列表中选择了一个字符串,我需要将其解析为一个int,否则我想将null传递给该方法。

2 个答案:

答案 0 :(得分:242)

int? x = string.IsNullOrEmpty(cert) ? (int?)null : int.Parse(cert);

答案 1 :(得分:9)

我遇到了同样的事情......我通常只是将null转换为(int?)

int? x = (string.IsNullOrEmpty(cert)) ? (int?)null: int.Parse(cert);