并非所有代码都返回此方法中的值

时间:2012-05-04 15:46:08

标签: c# .net

这是我用来检查数据表中是否存在标题匹配的方法:

public static bool checkBook(DataTable dt, String title)
{
    try
    {
        foreach (DataRow dr in dt.Rows)
        {
            String checktitle = dr["Title"].ToString();
            if (title == checktitle)
                return true;
            else
                return false;
    }
    catch (Exception ex)
    {
        //do something
        return false;
     }
}

但是有一个问题,我尝试使用try和catch但是为什么没有值返回?

3 个答案:

答案 0 :(得分:6)

try枚举任何内容的情况下,您没有从dt.Rows块返回任何内容。

在try块中的foreach之外,您只需添加return false;

答案 1 :(得分:2)

如果数据中没有行,会发生什么? 那么归还了什么?

答案 2 :(得分:2)

存在错误,因为如果数据表中没有行,则无法返回表单代码,因此您需要return false,如下所示代码,

为您优化代码:

    public static bool checkBook(DataTable dt, String title)
    {
      bool returnval= false;
      try 
      {

         foreach (DataRow dr in dt.Rows)
            {
                String checktitle = dr["Title"].ToString();
                if (title == checktitle)
                {
                    returnval= true;
                }

        }
    catch (Exception ex)
    {
     //do something
    }
    return returnval;
   }