如果HasValue使用可空值

时间:2013-04-29 19:23:41

标签: c# .net

说,我有int? number。我需要做以下事情:

if (number.HasValue)
{
    // use number.Value in any way. for example:
    return number.Value;
}
else
{
    return 0; // or another literal or constant value
}

是否存在上述列出的现有方法?

2 个答案:

答案 0 :(得分:13)

这是null-coalescing operator的用途:

return number ?? 6;

答案 1 :(得分:5)

以下是您需要的内容 - Nullable.GetValueOrDefault

示例:

return number.GetValueOrDefault();

如果number.HasValue == false,您可以指定默认值。在拳头示例中,default(int) = 0

return number.GetValueOrDefault(5);

感谢SLaks发表评论。它也可以:

return number ?? 5;

我发现编译器会将number == null样式代码替换为number.HasValue,因此您可以使用您喜欢的选项或编码指南。