我的代码如下:
bool r;
for (int i = 0; i < arg.Length; i++)
{
r = arg[i].SomethingThatReturnsBool();
}
return r;
由于某些原因,r
中的return r
带有红色下划线,表示未分配r
。有谁知道VS可能会这么认为?
答案 0 :(得分:1)
静态分析使您免于将来的错误,显然length
可以为0,在这种情况下该方法应该返回什么?
简单的解决方案是初始化一些东西
bool r = false;
答案 1 :(得分:0)
您的arg
数组可能有一天的长度为零,因此循环的主体将永远不会运行,并且r永远不会被赋值
在声明时为r分配一个合适的值,如果arg的长度为零,则您希望它具有任何值。如果您知道arg永远不会为零,那么选择什么都没关系(但不要期望编译器能够推断出arg总是具有非零长度;有些事情只有人类“知道”。) (而且弄错的是错误来自哪里;)))
答案 2 :(得分:0)
首先需要将r的值设置为false。
Applicative