Невозможно вернуть ноль с условным оператором (? :) - PullRequest
3 голосов
/ 03 декабря 2010

У меня есть метод, тип возвращаемого значения которого равен null.

 private int? LookupId(string name, string stateAbbreviation)

Я пытаюсь очистить код и решил использовать условный оператор в операторе возврата.

return id != 0 ? id : null;

Обычно, если идентификатор не равен 0, идите в голову и верните идентификатор. Он никогда не должен возвращать 0 из базы данных. Если, случайно, это 0, вернуть ноль.

Ошибка: «Тип условного выражения не может быть определен, потому что не существует неявного преобразования между« int »и« »»

Условный оператор предназначен для замены работающего оператора If ... Else.

Что-то не так с попыткой использовать условное выражение в этой комбинации? Чего мне не хватает?

Ответы [ 4 ]

4 голосов
/ 03 декабря 2010

Попробуйте return id != 0 ? Id : (int?)null;?

3 голосов
/ 03 декабря 2010

Вам нужно что-то для приведения типа, например

return id != 0? (int?)Id : null
2 голосов
/ 03 декабря 2010

Является ли id типа int? (а не int)?

1 голос
/ 03 декабря 2010

Проверьте это

   private int? getme()
    {
        int? id;
        id= 0;
        return id != 0 ? id : null;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...