铸造可空的布尔到布尔

gev*_*jen 11 c#

我有一个对象AlternateName.IsMaidenName

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

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

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

IsMaidenNameChecked = AlternateName.IsMaidenName;
Run Code Online (Sandbox Code Playgroud)

Fre*_*els 30

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

我会做的是这样的:

IsMaidenNameChecked = AlternateName.IsMaidenName ?? false;
Run Code Online (Sandbox Code Playgroud)


Dan*_*ite 17

IsMaidenName.Checked = AlternateName.IsMaidenName.GetValueOrDefault();
Run Code Online (Sandbox Code Playgroud)

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


Pet*_*ete 5

你可能想做类似的事情:

 IsMaidenNameChecked = AlternateName.IsMaidenName.GetValueOrDefault ();
Run Code Online (Sandbox Code Playgroud)

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