2010-12-03 42 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; 
    }