-3

说,我有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
}

是否有任何现有的方法可以做到上面列出的?

4

2 回答 2

13

这就是null-coalescing 运算符的用途:

return number ?? 6;
于 2013-04-29T19:27:08.907 回答
5

这是您需要的 - Nullable.GetValueOrDefault

例子:

return number.GetValueOrDefault();

您可以指定在 的情况下将是默认number.HasValue == false。在拳头示例中,它是default(int)= 0

return number.GetValueOrDefault(5);

感谢SLaks的评论。也可以这样做:

return number ?? 5;

正如我发现编译器替换number == null样式代码一样,number.HasValue您可以使用您喜欢的选项或您的编码指南规定的选项。

于 2013-04-29T19:23:40.543 回答