说,我有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
}
是否存在上述列出的现有方法?
答案 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
,因此您可以使用您喜欢的选项或编码指南。