c# – 具有布尔值的switch case的奇怪行为
发布时间:2020-12-15 20:00:26 所属栏目:百科 来源:网络整理
导读:我的问题不是关于如何解决这个错误(我已经解决了),但为什么这个错误与布尔值有关. 我的功能是 private string NumberToString(int number,bool flag){ string str; switch(flag) { case true: str = number.ToString("00"); break; case false: str = number
我的问题不是关于如何解决这个错误(我已经解决了),但为什么这个错误与布尔值有关.
我的功能是 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变量? 解决方法
您得到的错误是关于字符串变量而不是布尔值的可能值.
没有任何案例运行的事实是真的(在这种情况下),但编译器在分析代码时并没有这么做.它只是查看未在某些条件下分配和使用的变量,并且没有默认变量,因此假设在某些情况下它仍然未分配. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |