これは私の再帰関数である:私はそれを呼び出すところからこの再帰関数はどのように真を返すことができますか?
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;
}
Iアスペクト、常にfalseを取得する(関数の最後でreturn false
は、EVER、返される最後の結果になります) 。
実際、時にはtrueを返すことがあります。
どうすれば可能ですか?デバッグを試みました...しかし、私は間違いを見つけることができません...
あなたは 'KPage'クラスの定義を掲示し、あなたが' controllaSelezioneSottopagina'を呼び出しているかを示すことができたです偽の戻り値を引き起こしますか? –
再帰呼び出しを '返す '必要があります。 – SLaks
多分..最初のk_oSottoPaginaのために 'if(k_oSottoPagina.ID == k_oPaginaAttuale.ID)'が本当ですか? – nothrow