C# 使用三元运算符获取C中可为null的布尔值#

C# 使用三元运算符获取C中可为null的布尔值#,c#,C#,有没有一个班轮可以这样做 string to=someNullableBool?“value1”:“value2” 当前正在获取“无法隐式将bool?转换为bool”。。。??操作员在这里起作用了吗?或者,这只是在分配给布尔值时发生的 基本上,如果someNullableBool为null或false,则应将其视为false。我将使用以下命令,以确保您有一个值且该值为真。它更具可读性,但不是最有效的解决方案 string to = (someNullableBool.HasValue &

有没有一个班轮可以这样做

string to=someNullableBool?“value1”:“value2”

当前正在获取“无法隐式将bool?转换为bool”。。。
??
操作员在这里起作用了吗?或者,这只是在分配给布尔值时发生的


基本上,如果
someNullableBool
为null或false,则应将其视为false。

我将使用以下命令,以确保您有一个值且该值为真。它更具可读性,但不是最有效的解决方案

string to = (someNullableBool.HasValue && someNullableBool.Value) ? "value1" : "value2";

取决于
someNullableBool
为null时的解释方式

如果希望将
null
视为
true
false
,可以说
(someNullableBool??valueIfNull)
将其视为一个或另一个

如果必须专门处理
null
,则需要检查
someNullableBool.HasValue
并处理它为null的情况。完成此操作后,
true
false
的情况可以如上所述处理


如果该值不应为null,则理想情况下,它首先不应为null:P但如果这超出了您的控制范围,您可能希望强制转换到
bool
或使用nullable的
属性来明确该期望,如果该期望不成立,则会失败。

someNullableBool==true?“value1”:“value2”
(someNullableBool??false)?“value1”:“value2”
someNullableBool.GetValueOrDefault()?“a”:“b”
@Steve-这是错误的,因为同样的原因也是错误的。@M.kazemAkhgary是整个页面上最有用的内容。
您可以简单地强制转换到bool
,如果值为null,将导致它抛出,而不是被视为
false
(对于记录来说,如果值实际上不应该为
null,这可能是可取的)。查看问题下方的注释(或仅谷歌),了解将
bool?
转换为
bool
的一百万种方法,其中
null
应被视为
false
。@Servy:Ah…看起来我看到的转换错误P编辑。