Вставить значение null для bool

У меня есть объект AlternateName.IsMaidenName

Я хочу передать это флажку - IsMaidenName

Это не позволит мне использовать это как сказано. Невозможно преобразовать исходный тип nullable в целевой тип bool.

У меня была эта проблема в других местах нашего приложения, но я хотел бросить ее там, чтобы лучше справиться с этими проблемами.

IsMaidenNameChecked = AlternateName.IsMaidenName;

Ответ 1

Вполне логично, что вы не можете отбрасывать nullable bool в bool, так как какое значение должно иметь bool, когда nullable содержит null?

Что бы я сделал, это:

IsMaidenNameChecked = AlternateName.IsMaidenName ?? false;

Ответ 3

Вероятно, вы хотите сделать что-то вроде:

 IsMaidenNameChecked = AlternateName.IsMaidenName.GetValueOrDefault ();

См. Nullable.GetValueOrDefault(), или вы можете использовать перегрузку с явным значением по умолчанию.

Ответ 4

Флажки и Nullable<bool> оба имеют три состояния: "true", "false" и "missing".

Но вы пытаетесь сохранить значение в промежуточной переменной bool, которая не имеет способа справиться с "отсутствием".

Попробуйте изменить свою переменную bool так же, как и bool?.