Comportamento estranho do switch case com valor booleano
Minha pergunta não é sobre como resolver esse erro (eu já resolvi isso), mas porque é esse erro com valor booleano.
Minha função é
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;
}
Erro éUse of unassigned local variable 'str'
. Bool só pode ser verdadeiro ou falso. Então vai preencherstr
em ambos os casos. Então, por que esse erro?
Além disso, esse erro se foi se junto com o caso verdadeiro e falso eu adiciono umdefault
caso, mas o que pode um bool separar do verdadeiro e do falso?
Por que esse comportamento estranho com variável bool?