好吧 我把所有之前写的都删了,只为这一句话“所有变量切记小心在递归函数内部初始化”,包括:布尔,变量i,等等。至于为什么。。。。递归就是调用自己,你初始化以后的变量,等再次调用的时候又回来了
bool bFind = false; private bool FindNode(TreeNodeCollection nodeColl, string szName, ref TreeNode node) { foreach (TreeNode sub in nodeColl) { //MessageBox.Show(sub.Text ); if (sub.Text == szName) { node = sub; bFind = true; } FindNode(sub.Nodes, szName, ref node); //else //{ return FindNode(sub.Nodes, szName, ref node); } } return bFind ; // MessageBox.Show(bFind .ToString ()); }
绿标记都是错误的,在CSDN上有个哥们回答了,但是他在内部初始化的布尔,问问题的估计是在下面弄好了,这种问题一般自己搞定了,是很少有人说出来的