我创建了一个SPROC,它保存一个对象并返回保存的新对象的id。现在,我想返回一个int而不是int?
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?
}
感谢您的帮助
答案 0 :(得分:16)
return id.Value; // If you are sure "id" will never be null
或
return id ?? 0; // Returns 0 if id is null
答案 1 :(得分:6)
您可以在Nullable上使用GetValueOrDefault()
函数。
return id.GetValueOrDefault(0); // Or whatever default value is wise to use...
请注意,这与coalescing answer by Richard77类似,但我会说更具可读性......
然而,决定这是否是一个好主意取决于你。这可能是一个例外更合适吗?
if (! id.HasValue)
throw new Exception("Value not found"); // TODO: Use better exception type!
return id.Value;
答案 2 :(得分:3)
return id.Value;
您可能想检查id.HasValue是否为true,如果没有则返回0或其他内容。
答案 3 :(得分:0)
if (id.HasValue) return id.Value;
else return 0;
答案 4 :(得分:0)
return id.HasValue ? id.Value : 0;
如果不是null则返回id的值,而在另一种情况下返回0。