我如何转换int?进入int

时间:2010-06-14 19:16:13

标签: c# linq-to-sql

我创建了一个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?
}

感谢您的帮助

5 个答案:

答案 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。