Dziwne zachowanie przypadku przełącznika z wartością boolowską

Moje pytanie nie dotyczy tego, jak rozwiązać ten błąd (już go rozwiązałem), ale dlaczego ten błąd ma wartość logiczną.

Moja funkcja to

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;
}

Błąd jestUse of unassigned local variable 'str'. Bool może przyjąć prawdę lub fałsz. Więc będzie zaludniaćstr W obu przypadkach. Więc dlaczego ten błąd?

Ponadto ten błąd zniknął, jeśli wraz z prawdziwym i fałszywym przypadkiem dodamdefault sprawa, ale wciąż co może trzymać bool oprócz prawdy i fałszu?

Dlaczego to dziwne zachowanie ze zmienną bool?

questionAnswers(5)

yourAnswerToTheQuestion