【发布时间】:2012-04-24 05:03:34
【问题描述】:
这是我的递归函数:
public bool controllaSelezioneSottopagina(KPage k_oPaginaAttuale, KPage k_oPaginaSuperiore)
{
foreach (KPage k_oSottoPagina in k_oPaginaSuperiore.SottoPagine)
{
if (k_oSottoPagina.ID == k_oPaginaAttuale.ID)
{
return true;
}
else
{
if (k_oSottoPagina.SottoPagine.Count != 0)
{
controllaSelezioneSottopagina(k_oPaginaAttuale, k_oSottoPagina);
}
}
}
return false;
}
我认为,从我调用它的地方开始,始终为 false(函数末尾的 return false 将是返回的最后一个结果,永远)。
事实上,有时它会返回 true。
这怎么可能?试了调试...但我找不到错误...
【问题讨论】:
-
您能否发布
KPage类的定义,并说明您如何调用controllaSelezioneSottopagina来导致错误的返回值? -
你需要
return递归调用。 -
也许.. 对于第一个 k_oSottoPagina `if (k_oSottoPagina.ID == k_oPaginaAttuale.ID)` 为真?
-
@Darren Young :是的,但会回到我所说的那个地方。不是从第一次通话开始。
-
顺便说一句,我的 0.02$ - 尝试用英文命名属性/类型/变量,或者至少在发布到 SO 之前翻译它们,我很难理解可能发生的事情。跨度>