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

可能重复:
可空types和三元运算符:为什么? 10:null`被禁止?

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

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

我应该如何编码? 该方法采用可空。 如果下拉列表中select了一个string,我需要将其parsing为一个int,否则我想将null传递给该方法。

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

我遇到了同样的事情…我通常只是将null(int?)

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