我有一个名为AlternateName.IsMaidenName的对象
我想将其转换为复选框 - IsMaidenName
它不允许我将其强制转换,因为它说无法将源类型nullable转换为目标类型bool。
在我们的应用程序中,我在其他地方遇到过这个问题,但我想寻求更好的处理方法。
IsMaidenNameChecked = AlternateName.IsMaidenName;
我有一个名为AlternateName.IsMaidenName的对象
我想将其转换为复选框 - IsMaidenName
它不允许我将其强制转换,因为它说无法将源类型nullable转换为目标类型bool。
在我们的应用程序中,我在其他地方遇到过这个问题,但我想寻求更好的处理方法。
IsMaidenNameChecked = AlternateName.IsMaidenName;
你无法将可空的bool类型转换为bool类型是很合理的,因为当可空对象包含null时,bool类型应该有什么值呢?
我会这样做:
IsMaidenNameChecked = AlternateName.IsMaidenName ?? false;
IsMaidenName.Checked = AlternateName.IsMaidenName.GetValueOrDefault();
bool
类型的默认值为false
- http://msdn.microsoft.com/en-us/library/83fhsxwc.aspx - Daniel DiPaolo IsMaidenNameChecked = AlternateName.IsMaidenName.GetValueOrDefault ();
复选框和 Nullable<bool>
都有三种状态:"true"、"false" 和 "missing"。
但是你试图将值存储在一个中间的 bool
变量中,而这个变量无法处理 "missing"。
尝试将你的 bool
变量改为 bool?
。