2010-12-03 18 views
3

我有一个方法,其返回类型是一个可为空的int。无法返回null与条件(?:)运算符

private int? LookupId(string name, string stateAbbreviation) 

我想清理代码并决定在return语句中使用条件运算符。

return id != 0 ? id : null; 

基本上,如果id不是0,就去头并返回id。它不应该从数据库返回0。如果偶然为0,则返回null。

的错误是“无法确定条件表达式的类型,因为有‘廉政’和‘’之间的隐式转换”

有条件op是为了取代运行if ... else语句。

尝试在这种组合中使用这种方式的条件有什么不对吗?我错过了什么?

+0

确保ID是'INT?',而不是'int`。 – 2010-12-03 19:09:32

+0

您正在比较变量id和0,并返回另一个名为Id(大写I)的变量。这是故意的吗? – Bazzz 2010-12-03 19:10:18

回答

2

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

4

尝试return id != 0 ? Id : (int?)null;

3

你需要的东西要挟的类型,比如

return id != 0? (int?)Id : null 
1

入住这

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