Visual Studio给出返回未分配的布尔值的错误

时间:2019-06-04 03:56:15

标签: c# visual-studio

我的代码如下:

bool r;

for (int i = 0; i < arg.Length; i++)
{
    r = arg[i].SomethingThatReturnsBool();
}

return r;

由于某些原因,r中的return r带有红色下划线,表示未分配r。有谁知道VS可能会这么认为?

3 个答案:

答案 0 :(得分:1)

静态分析使您免于将来的错误,显然length可以为0,在这种情况下该方法应该返回什么?

简单的解决方案是初始化一些东西

bool r = false;

答案 1 :(得分:0)

您的arg数组可能有一天的长度为零,因此循环的主体将永远不会运行,并且r永远不会被赋值

在声明时为r分配一个合适的值,如果arg的长度为零,则您希望它具有任何值。如果您知道arg永远不会为零,那么选择什么都没关系(但不要期望编译器能够推断出arg总是具有非零长度;有些事情只有人类“知道”。) (而且弄错的是错误来自哪里;)))

答案 2 :(得分:0)

首先需要将r的值设置为false。

Applicative