次のコンパイラ エラーが発生しました。
タイプ「bool?」を暗黙的に変換できませんか? 「ブール」に。明示的な変換が存在します (キャストがありませんか?)。
次のコードの場合:
xEnable = was.xEnable;
xEnableDB の null 許容列です。
この意味は
xEnable is of type bool
と
was.xEnable is of type bool? (ie: nullable bool)
次のようなことをします
xEnable = was.xEnable.HasValue ? was.xEnable.Value : false;
ここで、falseはwas.xEnable==nullの場合のデフォルト値です。
編集 またはあなたが本当に欲しいならあなたは??を使用することができます のような演算子
xEnable = was.xEnable ?? true;
また
xEnable = was.xEnable ?? false;
??タイトルのように実際に使用するには、
xEnable = was.xEnable ?? false;
もしあなたがなりたいならxEnable、、またはfalsewas.xEnablenull
xEnable = was.xEnable ?? true;
あなたがなりたいxEnableならtrueです。was.xEnablenull
C#8.0以降では、??要求どおりに演算子を使用できます。
xEnable = was.xEnable ?? false;
がfalseデフォルト値になりたい場合。was.xEnablenull
was.xEnablenullでないことがわかっている場合は、次を使用できます。
xEnable = was.xEnable.Value
のときにデフォルト値を使用する場合was.xEnableはnull、次のように実行できます。
bool defaultValue = false;
xEnable = was.xEnable ?? defaultValue;
実際にデータベースにnull値を渡そうとしていますか?もしそうなら:
xEnable = was.xEnable.HasValue ? was.xEnable.Value : DBNull.Value;
bool a = false;
bool? b = null;
a = (bool)b;
これにより、がの場合に例外が発生しbますnull。
したがって、考えられる解決策は次のとおりです。
bあなたはそれが決してないこと を知っているnullので、このパターンを使用してください(悪い)aによってnull許容に するbool? a = falsenullてくださいb、a = (b == null)?false:b.Value;お役に立てれば。