2

このコードは単純で、通常のスイッチです。

bool? isSomething = strSomething switch
{
    "I" => true,
    "D" => false,
    _   => null,
};

ただし、コンパイラは次のエラーを表示します。

CS0037 null は null 非許容値型であるため、null を 'bool' に変換できません

変数は明らかに null 許容の boolbool?です。なぜ c# コンパイラは、null をキャストして機能させないと、これを理解できないのでしょうか。

_   => (bool?)null,

私はこれを正しく理解していませんか?キャストは不要ですか?

4

1 に答える 1