微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 具有布尔值的switch case的奇怪行为

我的问题不是关于如何解决这个错误(我已经解决了),但为什么这个错误与布尔值有关.

我的功能

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

错误是使用未分配的局部变量’str’.布尔只能是真或假.所以在任何一种情况下都会填充str.那么为什么这个错误

此外,如果伴随着真假情况我会添加一个认情况,这个错误就消失了,但是仍然可以将bool与true和false分开?

为什么这个奇怪的行为与bool变量?

解决方法

您得到的错误是关于字符串变量而不是布尔值的可能值.

没有任何案例运行的事实是真的(在这种情况下),但编译器在分析代码时并没有这么做.它只是查看未在某些条件下分配和使用的变量,并且没有认变量,因此假设在某些情况下它仍然未分配.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐