我有一個對象AlternateName.IsMaidenName鑄造可空布爾爲bool
我要強制轉換成一個複選框 - IsMaidenName
它不會讓我投的是因爲它說無法轉換源可空類型到目標類型布爾。
我在我們的應用程序的其他位置有過這個問題,但我想把它放在那裏以更好地處理這些問題。
IsMaidenNameChecked = AlternateName.IsMaidenName;
我有一個對象AlternateName.IsMaidenName鑄造可空布爾爲bool
我要強制轉換成一個複選框 - IsMaidenName
它不會讓我投的是因爲它說無法轉換源可空類型到目標類型布爾。
我在我們的應用程序的其他位置有過這個問題,但我想把它放在那裏以更好地處理這些問題。
IsMaidenNameChecked = AlternateName.IsMaidenName;
這是很合乎邏輯,你不能施放一個可空布爾爲BOOL,因爲在布爾應該有什麼樣的價值,當可爲空包含空?
我會做什麼,是這樣的:
IsMaidenNameChecked = AlternateName.IsMaidenName ?? false;
複選框和Nullable<bool>
都有三個狀態:「true」,「false」和「missing」。
但是,您正試圖將該值存儲在無法處理「缺失」的中間變量bool
中。
嘗試將您的bool
變量更改爲bool?
。
IsMaidenName.Checked = AlternateName.IsMaidenName.GetValueOrDefault();
你可能想這樣做:
IsMaidenNameChecked = AlternateName.IsMaidenName.GetValueOrDefault();
見Nullable.GetValueOrDefault(),或者您也可以使用包括一個明確的默認超載。
在.NET中`bool`的默認值爲`false`的附加警告 - http://msdn.microsoft.com/en-us/library/83fhsxwc.aspx – 2011-02-17 16:17:49
請注意,有一個[過載] (http://msdn.microsoft.com/en-us/library/3d6d4f1d(v=vs.110).aspx) - 您可以說`GetValueOrDefault(true)`,也就是指定要返回的默認值情況爲空。所以你不限於返回'false'。 – David 2014-12-18 16:06:48