说,我有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
}
是否有任何现有的方法可以做到上面列出的?
这就是null-coalescing 运算符的用途:
return number ?? 6;
这是您需要的 - Nullable.GetValueOrDefault。
例子:
return number.GetValueOrDefault();
您可以指定在 的情况下将是默认值number.HasValue == false
。在拳头示例中,它是default(int)
= 0
:
return number.GetValueOrDefault(5);
感谢SLaks的评论。也可以这样做:
return number ?? 5;
正如我发现编译器替换number == null
样式代码一样,number.HasValue
您可以使用您喜欢的选项或您的编码指南规定的选项。