Ответ 1
Вполне логично, что вы не можете отбрасывать nullable bool в bool, так как какое значение должно иметь bool, когда nullable содержит null?
Что бы я сделал, это:
IsMaidenNameChecked = AlternateName.IsMaidenName ?? false;
У меня есть объект AlternateName.IsMaidenName
Я хочу передать это флажку - IsMaidenName
Это не позволит мне использовать это как сказано. Невозможно преобразовать исходный тип nullable в целевой тип bool.
У меня была эта проблема в других местах нашего приложения, но я хотел бросить ее там, чтобы лучше справиться с этими проблемами.
IsMaidenNameChecked = AlternateName.IsMaidenName;
Вполне логично, что вы не можете отбрасывать nullable bool в bool, так как какое значение должно иметь bool, когда nullable содержит null?
Что бы я сделал, это:
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?
.