title: How can this recursive function return true?
body: <p>This is my recursive function :</p>
  
  <pre><code>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;
  }
  </code></pre>
  
  <p>I aspect, from where I call it, to get ALWAYS false (the <code>return false</code> at the end of the function, will be the last result that will be returned, EVER).</p>
  
  <p>In fact, sometimes it returns true. </p>
  
  <p>How it is possible? Tried debugging... but I can't find out the mistake...</p>