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

可能的复制品:
可空类型和三元运算符: 为什么禁止‘ ? 10: null’?

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

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

我该怎么编写代码?该方法接受一个 Nullable。如果下拉菜单中选择了一个字符串,我需要将其解析为一个 int,否则我想将 null 传递给该方法。

47997 次浏览
int? x = string.IsNullOrEmpty(cert) ? (int?)null : int.Parse(cert);

I've come across the same thing ... I usually just cast the null to (int?)

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