Выражение переключателя в C# 8 недостаточно "умное"

Этот код прост, обычный переключатель:

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

Однако компилятор выдает следующую ошибку:

CS0037 Невозможно преобразовать null в 'bool', поскольку это тип значения, не допускающий значения NULL

Переменная явно имеет значение nullable bool bool?, почему компилятор С # не может понять это без того, чтобы мне пришлось привести нуль, чтобы заставить его работать:

_   => (bool?)null,

Я не правильно понимаю? разве гипс не нужен?

1 ответ

Решение

Для этого есть открытая проблема #2387 в языке C#. Что могло быть исправлено в этом кандидате на C# 9.

Другие вопросы по тегам