在C#中使用可空的bool我发现自己写了很多这个模式
if(model.some_value == null || model.some_value == false)
{
// do things if some_value is not true
}
是否有更简洁的方式来表达这种说法?我无法使用不可空的bool,因为我无法更改模型,我无法做到这一点
if(model.some_value != true)
{
// do things if some_value is not true
}
因为如果model.some_value
为空
我有一个想法:
我可以为像String.IsNullOrEmpty
- bool.IsNullOrFalse
这样的bool编写扩展方法。这样会很整齐,但我想知道是否有更明显的方法可以做到这一点?
答案 0 :(得分:0)
使用null-coalescing运算符来处理值为null的情况。
if(model.some_value ?? false != true)
{
// do things if some_value is not true
}
来自msdn:
?运算符(C#参考)
?? operator被称为null-coalescing运算符。它返回 如果操作数不为空,则为左操作数;否则它返回 右手操作。
或者,switch
会这样做。
switch(model.some_value)
{
case false:
case null:
// do things if some_value is not true
break;
}