Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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# 4.0 无法使用条件(?:)运算符返回null_C# 4.0 - Fatal编程技术网

C# 4.0 无法使用条件(?:)运算符返回null

C# 4.0 无法使用条件(?:)运算符返回null,c#-4.0,C# 4.0,我有一个方法,它的返回类型是一个可为null的int private int? LookupId(string name, string stateAbbreviation) 我试图清理代码,并决定在return语句中使用条件运算符 return id != 0 ? id : null; 基本上,如果id不是0,则转到head并返回id。它永远不会从db返回0。如果碰巧为0,则返回null 错误为“无法确定条件表达式的类型,因为“int”和“”之间没有隐式转换” 条件op用于替换正在运行的

我有一个方法,它的返回类型是一个可为null的int

 private int? LookupId(string name, string stateAbbreviation)
我试图清理代码,并决定在return语句中使用条件运算符

return id != 0 ? id : null;
基本上,如果id不是0,则转到head并返回id。它永远不会从db返回0。如果碰巧为0,则返回null

错误为“无法确定条件表达式的类型,因为“int”和“”之间没有隐式转换”

条件op用于替换正在运行的If…Else语句

return id != 0 ? id : null;

在这种组合中,以这种方式使用条件语句有什么不对吗?我缺少什么?

int?
类型的
id
(而不是
int
)?

尝试
返回id!=0 ? Id:(int?)空

您需要一些东西来强制类型,例如

return id != 0? (int?)Id : null
检查这个

   private int? getme()
    {
        int? id;
        id= 0;
        return id != 0 ? id : null;
    }

确保id是
int?
,而不是
int
。将变量id与0进行比较,并返回另一个名为id(大写I)的变量。这是故意的吗?够有趣的,
返回id!=0 ? (int?)Id:null也可以工作。