Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C代码赢得';我不编译。null和int之间没有隐式转换_C#_String_Null_Nullable - Fatal编程技术网

C# C代码赢得';我不编译。null和int之间没有隐式转换

C# C代码赢得';我不编译。null和int之间没有隐式转换,c#,string,null,nullable,C#,String,Null,Nullable,可能重复: 为什么这样不行?似乎是有效的代码 string cert = ddCovCert.SelectedValue; int? x = (string.IsNullOrEmpty(cert)) ? null: int.Parse(cert); Display(x); 我应该如何编写代码?该方法采用可为null的。如果下拉列表中选择了一个字符串,我需要将其解析为int,否则我想将null传递给该方法。我遇到了同样的问题。。。我通常只是将空值转换为(int?) int? x =

可能重复:

为什么这样不行?似乎是有效的代码

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

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

我遇到了同样的问题。。。我通常只是将空值转换为(int?)

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

重复-另请参阅了解更多信息,请参阅感谢Andrew Hare。看起来这种行为是三元运算符特有的(如果需要,可以使用传统的if语句来避免)。看起来还有其他一些重复,在我看来,这是微软糟糕的API设计。我有时需要它,但总是忘了,最后在这里结束:D.谢谢节省了我的时间。谢谢。太奇怪了,你需要投空。。为什么null不能是通用类型?很有帮助。回答了我的问题。这也是可能的:
int?x=string.IsNullOrEmpty(证书)?null:(int?)int.Parse(cert)
int? x = (string.IsNullOrEmpty(cert)) ? (int?)null: int.Parse(cert);