Я имею, создают 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?
}
Спасибо за помощь
return id.Value; // If you are sure "id" will never be null
или
return id ?? 0; // Returns 0 if id is null
Вы можете использовать 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;
return id.Value;
Вы можете проверить, истинно ли id.HasValue, и вернуть 0 или что-то в противном случае.
return id.HasValue ? id.Value : 0;
возвращает значение id в случае, если оно не равно нулю, и 0 в другом случае.