Error : cannot implicitly convert type 'bool?' to 'bool'. An explicit conversion exists (are you missing a cast?)
代码:
Test obj = new Test();
obj.IsDisplay = chkDisplay.IsChecked;
但是当我使用此方法将属性转换为 bool 时,没有错误。
Test obj = new Test();
obj.IsDisplay = (bool) chkDisplay.IsChecked;
我想知道为什么我需要将这个 bool 转换为 bool?
最佳答案
正如其他人所述bool?
不等于 bool
. bool?
也可以是null
, 请参阅 Nullable<t>
(msdn)。
如果你知道 null
是什么state 想暗示,你可以轻松地使用 ?? - 空合并运算符 ( msdn ) 来转换你的 bool?
至 bool
没有任何副作用(Exception
)。
例子:
//Let´s say "chkDisplay.IsChecked = null" has the same meaning as "chkDisplay.IsChecked = false" for you
//Let "check" be the value of "chkDisplay.IsChecked", unless "chkDisplay.IsChecked" is null, in which case "check = false"
bool check = chkDisplay.IsChecked ?? false;
关于c# - 无法将类型 'bool?' 隐式转换为 'bool' 。存在显式转换(您是否缺少转换?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22680391/