voi*_*ter 0 c# boolean nullable ternary-operator
以下是一些入门示例代码:
class Foo
{
public bool? IsValid { get; set; }
}
// later in some other function...
void DoStuff( Foo myFoo )
{
myControlState.Visible = myFoo.IsValid.HasValue ? myFoo.IsValid.Value : false;
}
Run Code Online (Sandbox Code Playgroud)
我遇到很多情况,我必须使用像上面这样的三元运算符来正确使用可空的bool.如果有一种稍微简单的方法来获取bool的值而不抛出异常,那将是很好的.上面的代码似乎是直截了当的,但是有更复杂的情况,这最终会成为很多代码.我希望有一些简单的东西:
myControlState.Visible = GetNullableValue<bool>( myFoo );
Run Code Online (Sandbox Code Playgroud)
有没有人有三元运算符的更清洁的替代品?
你可以使用null-coalescing运算符,如果这使它更具可读性.
myControlState.Visible = myFoo.IsValid ?? false;
Run Code Online (Sandbox Code Playgroud)