Как я преобразовываю интервал? в интервал

Я имею, создают SPROC, который сохраняет объект и возвращает идентификатор нового сохраненного объекта. Теперь, я хотел бы возвратить интервал не интервал?

public int Save(Contact contact)
{
  int? id;
  context.Save_And_SendBackID(contact.FirstName, contact.LastName, ref id);
  //How do I return an int instead of an int?
}

Спасибо за помощь

7
задан Richard77 14 June 2010 в 19:16
поделиться

5 ответов

return id.Value; // If you are sure "id" will never be null

или

return id ?? 0; // Returns 0 if id is null
16
ответ дан 6 December 2019 в 07:05
поделиться

Вы можете использовать GetValueOrDefault () функция на Nullable.

return id.GetValueOrDefault(0); // Or whatever default value is wise to use...

Обратите внимание, что это похоже на объединяющий ответ Ричарда77 , но я бы сказал, что он немного более читабелен ...

Однако решать, является ли это хорошей идеей, решать вам. Так что, возможно, более подходящим является исключение?

if (! id.HasValue)
    throw new Exception("Value not found"); // TODO: Use better exception type!

return id.Value;
6
ответ дан 6 December 2019 в 07:05
поделиться
if (id.HasValue) return id.Value;
else return 0;
0
ответ дан 6 December 2019 в 07:05
поделиться
return id.Value;

Вы можете проверить, истинно ли id.HasValue, и вернуть 0 или что-то в противном случае.

3
ответ дан 6 December 2019 в 07:05
поделиться
return id.HasValue ? id.Value : 0;

возвращает значение id в случае, если оно не равно нулю, и 0 в другом случае.

0
ответ дан 6 December 2019 в 07:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: