我在这段代码中找不到错误:
private int existb1b2(Bill b1, ArtQty artQty)
{
int test;
for(int i = 0; i < b1.ArtQty.Count(); i++)
{
if (b1.ArtQty[i].Article.Name == artQty.Article.Name)
test = 0;
else
test = -1;
}
return test;
}
return test
说(局部变量)int test错误:使用未分配的局部变量'test'
答案 0 :(得分:3)
您有几个问题 - 首先,您需要为test
分配初始值,因为无法保证您甚至可以进入for
循环。这是您的错误来源。
其次,如果你有匹配,你可能想要返回0 - 编写代码的方式,即使找到匹配项,它也会实际返回-1,除非列表中的LAST项是匹配项。你可能最好只返回找到匹配的时刻,不需要迭代其余的项目,甚至不需要局部变量赋值。
试试这个:
private int existb1b2(Bill b1, ArtQty artQty)
{
for (int i = 0; i < b1.ArtQty.Count(); i++)
{
if (b1.ArtQty[i].Article.Name == artQty.Article.Name) return 0;
}
return -1;
}
或者,如果您只想修复编译错误,可以将int test;
行更改为int test = -1;