0

我返回了一个递归函数,它按如下方式调用自身,但我无法打破它,这是我的代码

public DataSet GetTableInfo(string sItem, double dAmount)
{
   string str = string.Empty;
   double d = 0;

   Dataset ds = new Dataset();

   // Filled the dataset with the query, select Column1, Column2 from table
   if(ds.Tables[0].Rows.Count != 0)
   {
      if(ds.Tables[0].Rows[0]["Column1"].ToString() != string.empty)
      {
          GetTableInfo(str,d);
      }
      else
      {
          return ds;
      }
   }

   return ds;
}

即使我的 else 条件得到执行,它也无法从函数中退出,有人能告诉我哪里出错了吗?

4

2 回答 2

0

返回以递归方法返回的数据集,

 if(ds.Tables[0].Rows[0]["Column1"].ToString() != string.empty)
 {
      return GetTableInfo(str, d);
 }
 else
 {
      return ds;
 }
于 2013-06-07T11:13:13.103 回答
0

您缺少退货声明:

if (ds.Tables[0].Rows[0]["Column1"].ToString() != string.Empty)
{
    return GetTableInfo(str, d);
}

return ds;

第一个返回基本上是处理子元素,而第二个返回是展开堆栈。

于 2013-06-07T11:14:48.407 回答