如果是HasValue,则使用可空值

本文关键字:空值 HasValue 如果 | 更新日期: 2023-09-27 18:11:18

假设我有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
}

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

如果是HasValue,则使用可空值

这就是空合并运算符的作用:

return number ?? 6;

这是你需要的- Nullable.GetValueOrDefault.

的例子:

return number.GetValueOrDefault();

number.HasValue == false的情况下,您可以指定will为默认值。在拳头的例子中是default(int) = 0:

return number.GetValueOrDefault(5);

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

return number ?? 5;

当我发现编译器用number.HasValue代替number == null风格的代码时,您可以使用您喜欢的选项或您的编码指南。