Странное поведение регистра переключателя с логическим значением

Мой вопрос не о том, как решить эту ошибку (я уже решил ее), а о том, почему эта ошибка имеет логическое значение.

Моя функция

private string NumberToString(int number, bool flag)
{
    string str;

    switch(flag)
    {
        case true: 
            str = number.ToString("00");
            break;
        case false:
            str = number.ToString("0000"); 
            break;
    }

    return str;
}

ОшибкаUse of unassigned local variable 'str', Bool может принимать только истину или ложь. Так будет заселятьсяstr в любом случае. Тогда почему эта ошибка?

Более того, эта ошибка исчезнет, если наряду с истинным и ложным регистром я добавлюdefault случай, но все же, что может bool держать отдельно от истины и лжи?

Почему это странное поведение с переменной bool?

Ответы на вопрос(5)

Ваш ответ на вопрос