是否有单行代码才能执行此操作?
string to = someNullableBool ? "value1" : "value2";
目前正在“无法隐式地将bool转换为bool”...... ??
运营商是否在这里发挥作用?或者只有在分配给布尔时才会这样做?
基本上,如果someNullableBool
为null或false,则应将其视为false。
答案 0 :(得分:3)
我会使用以下内容确保您拥有一个值并且该值为true。它更具可读性,但不是最高性能的解决方案。
string to = (someNullableBool.HasValue && someNullableBool.Value) ? "value1" : "value2";
答案 1 :(得分:2)
取决于如果someNullableBool
为空,您希望如何解释它。
如果您希望null
被视为true
或false
,您可以说(someNullableBool ?? valueIfNull)
将其视为一个或另一个。
如果必须特别处理null
,那么您需要检查someNullableBool.HasValue
并处理它为空的情况。完成后,true
和false
的案例可按上述方式处理。
如果值永远不应为null,理想情况下,它首先不应该是可空的。 :P但是,如果这不受您的控制,您可能希望转换为bool
或使用可空的Value
属性使该期望显式,并且如果它不成立则失败。