このコードは単純で、通常のスイッチです。
bool? isSomething = strSomething switch
{
"I" => true,
"D" => false,
_ => null,
};
ただし、コンパイラは次のエラーを表示します。
CS0037 null は null 非許容値型であるため、null を 'bool' に変換できません
変数は明らかに null 許容の boolbool?
です。なぜ c# コンパイラは、null をキャストして機能させないと、これを理解できないのでしょうか。
_ => (bool?)null,
私はこれを正しく理解していませんか?キャストは不要ですか?