Не удается неявно преобразовать тип bool?

Я пытаюсь преобразовать свое значение типа bool, допускающее значение NULL, и получаю эту ошибку.

Cannot implicitly convert type 'bool?' to 'bool'. An explicit conversion exists (are you missing a cast?)

Например:

public virtual bool? MyBool
  {
    get;
    set;
  }

if (!MyBool){}
24
задан MADCookie 7 May 2012 в 20:54
поделиться

2 ответа

Как гласит ошибка, вы не можете использовать bool? в условном выражении. (Что произойдет, если это null?)

Вместо этого вы можете написать if (MyBool != true) или if (MyBool == false), в зависимости от того, хотите ли вы включить null. (и вы должны добавить комментарий, объясняющий это)

30
ответ дан 28 November 2019 в 23:36
поделиться

Вам нужно проверить, имеет ли оно значение. Что вы хотите сделать, если MyBool == null?

if( MyBool.HasValue && !MyBool.Value ) // MyBool is false
if( MyBool.HasValue && MyBool.Value ) // MyBool is true
if( !MyBool.HasValue ) // MyBool is null
2
ответ дан 28 November 2019 в 23:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: