日期:2014-05-17  浏览次数:20414 次

反递归问题
C# code

        private int[] classid = new int[] { 15 };
        /// <summary>
        /// 判断是否显示多图列表
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        private bool Get(int id)
        {
            Img.Model.Img_Class classmodel = classbll.GetModelByCache(id);  

            
            foreach (var item in classid)
            {
                if (item == classmodel.Class_Id)
                {
                    return true; 
                }
                else
                {
                    if (classmodel.Class_PId!=0)
                    {
                        Get(classmodel.Class_PId);
                    }
                    
                }
            }
            return false;
        }



我在调试的时候,为什么调试 已经return true 了还 跳到Get(classmodel.Class_PId);这里面去执行?不知道为什么 ?高手帮助下啊

------解决方案--------------------
if (classmodel.Class_PId!=0)
{
if(Get(classmodel.Class_PId))
{
return true;
}
}