Я пытаюсь преобразовать свое значение типа 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){}
Как гласит ошибка, вы не можете использовать bool?
в условном выражении. (Что произойдет, если это null
?)
Вместо этого вы можете написать if (MyBool != true)
или if (MyBool == false)
, в зависимости от того, хотите ли вы включить null
. (и вы должны добавить комментарий, объясняющий это)
Вам нужно проверить, имеет ли оно значение. Что вы хотите сделать, если MyBool == null
?
if( MyBool.HasValue && !MyBool.Value ) // MyBool is false
if( MyBool.HasValue && MyBool.Value ) // MyBool is true
if( !MyBool.HasValue ) // MyBool is null