下面是一些示例代碼開始:如何簡化爲空的布爾值的使用在C#
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;
}
我碰到很多的,我必須使用三元運算符像上面正確使用可爲空的情況下,布爾。如果在不拋出異常的情況下獲得bool值的方法稍微簡單一些,那將會很好。上面的代碼看起來很簡單,但有很多複雜的情況,最終代碼很多。我希望做一些簡單的事情,例如:
myControlState.Visible = GetNullableValue<bool>(myFoo);
有沒有人有任何更清潔的三元運算符的替代品?
真正的解決方案是從不使用可空,但由於某些原因API可以。我從來不明白爲什麼我會想要一個有3個選項的布爾... –
alternative
@monadic:我的例子不在上下文中,所以自然沒有任何意義。在我的真實代碼中,我正在處理SQL服務器中的可空字段,並將其映射到類中的某個屬性,所以對我來說,擁有三值布爾值當然很重要。 –