我有一个返回类型为可空int的方法。
private int? LookupId(string name, string stateAbbreviation)
我正在尝试清理代码并决定在return语句中使用条件运算符。
return id != 0 ? id : null;
基本上,如果id不为0,请转到头并返回id。它永远不应该从db返回0。如果它偶然为0,则返回null。
错误是“无法确定条件表达式的类型,因为'int'和''之间没有隐式转换
条件op旨在替换正常运行的If ... Else语句。
在这种组合中尝试以这种方式使用条件有什么不对吗?我错过了什么?
答案 0 :(得分:4)
试试return id != 0 ? Id : (int?)null;
?
答案 1 :(得分:3)
您需要强制类型的内容,例如
return id != 0? (int?)Id : null
答案 2 :(得分:2)
id
类型为int?
(而不是int
)?
答案 3 :(得分:1)
检查
private int? getme()
{
int? id;
id= 0;
return id != 0 ? id : null;
}