繁体   English   中英

铸造可空的布尔到布尔

[英]Cast nullable bool to bool

我有一个对象AlternateName.IsMaidenName

我想把它转换成一个复选框--IsMaidenName

它不会让我按照它所说的无法转换源类型可以为目标类型bool。

我在我们的应用程序中的其他位置遇到过这个问题但是我想把它扔出去以便更好地处理这些问题。

IsMaidenNameChecked = AlternateName.IsMaidenName;

你不能将一个可空的bool强制转换为bool是合乎逻辑的,因为当nullable包含null时,bool应该有什么值?

我会做的是这样的:

IsMaidenNameChecked = AlternateName.IsMaidenName ?? false;
IsMaidenName.Checked = AlternateName.IsMaidenName.GetValueOrDefault();

请参阅: http//msdn.microsoft.com/en-us/library/72cec0e0.aspx

你可能想做类似的事情:

 IsMaidenNameChecked = AlternateName.IsMaidenName.GetValueOrDefault ();

请参阅Nullable.GetValueOrDefault() ,或者您可以使用包含显式默认值的重载。

复选框和Nullable<bool>都有三种状态:“true”,“false”和“missing”。

但是你试图将值存储在一个无法处理“丢失”的中间bool变量中。

尝试将bool变量更改为bool?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM