Странное поведение регистра переключателя с логическим значением
Мой вопрос не о том, как решить эту ошибку (я уже решил ее), а о том, почему эта ошибка имеет логическое значение.
Моя функция
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?