返回值时出错

时间:2014-10-09 22:34:48

标签: c# variables for-loop

我在这段代码中找不到错误:

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'

1 个答案:

答案 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;