0
public List<string>  Test_IsDataLoaded()
    {
        try
        {
            if (GRIDTest.Rows.Count != 0)
            {
                int countvalue = GRIDTest.Rows.Count;
                GRIDTest.Rows[0].WaitForControlReady();

                List<string> ReleaseIDList = new List<string>();

                int nCellCount = GRIDTest.Cells.Count;

                for(int nCount = 0;nCount<nCellCount ;nCount++)
                  {
                        if(nCount %5==0)
                        ReleaseIDList.Add((GRIDTest.Cells[0].GetProperty("Value").ToString()));
                  }
                return ReleaseIDList;    
             }

        }
        catch (Exception)
    {
    }
}

方法向我抛出错误 = 并非所有代码路径都返回一个值。代码有什么问题。

4

4 回答 4

2

你的错误是:

并非所有代码路径都返回一个值

哪个是对的。if您只在语句中返回一个值:

if (GRIDTest.Rows.Count != 0)

如果GRIDTest.Rows.Count==0。然后你不会返回一个值。


作为故障安全(如果您的代码错误,或者您的 if 语句不正确),您可以将以下内容添加到方法的最后一行:

return new List<string>();

这将确保如果没有进行其他返回,则将返回一个List

于 2012-09-26T09:35:11.243 回答
0

return 在方法的末尾添加

public List<string>  Test_IsDataLoaded()
    {
        try
        {
            if (GRIDTest.Rows.Count != 0)
            {
                int countvalue = GRIDTest.Rows.Count;
                GRIDTest.Rows[0].WaitForControlReady();

                List<string> ReleaseIDList = new List<string>();

                int nCellCount = GRIDTest.Cells.Count;

                for(int nCount = 0;nCount<nCellCount ;nCount++)
                  {
                        if(nCount %5==0)
                        ReleaseIDList.Add((GRIDTest.Cells[0].GetProperty("Value").ToString()));
                  }
                return ReleaseIDList;    
             }

        }
        catch (Exception)
    {
    }

return new List<string>() ;//<-------here
}
于 2012-09-26T09:34:09.633 回答
0

编译器抱怨是因为如果发生异常或 if 语句返回 false,则不会执行 return 语句。

在方法的末尾添加一个默认的 return 语句。

于 2012-09-26T09:35:55.500 回答
0

抱怨上述问题的原因是你没有从整个方法中返回值......它只返回if condition但如果它跳过if statement,将没有返回值。所以你必须确定返回值整个方法....

你可以这样做:

public List<string>  Test_IsDataLoaded()
{
   List<string> ReleaseIDList = new List<string>();
    try
    {
        if (GRIDTest.Rows.Count != 0)
        {
            int countvalue = GRIDTest.Rows.Count;
            GRIDTest.Rows[0].WaitForControlReady();
            int nCellCount = GRIDTest.Cells.Count;

            for(int nCount = 0;nCount<nCellCount ;nCount++)
              {
                    if(nCount %5==0)
                    ReleaseIDList.Add((GRIDTest.Cells[0].GetProperty("Value").ToString()));
              }

         }
    }
    catch (Exception)
    {
    }
    return ReleaseIDList;  
}
于 2012-09-26T09:36:21.810 回答