.NET 3.x Почему если условие входа в цикл не выполняется, функция заново входит в цикл - C#

Узнай цену своей работы

Формулировка задачи:

Сам код:
private void traverse_node(TreeControlItem node)
        {
            TreeControlItem childNode = default(TreeControlItem);
            Feature featureNode = default(Feature);
            int nodeObjectType = 0;
            object nodeObject = null;
            string restOfString = "";
            string indent = "";
            int i = 0;
            bool displayNodeInfo = true;
            nodeObjectType = node.ObjectType;
            nodeObject = node.Object;
            if ((nodeObject != null))
            {
                featureNode = (Feature)nodeObject;
                restOfString = "[FEATURE: " + featureNode.Name + "]";
            }
 
            if ((displayNodeInfo))
            {
                Debug.Print(indent + node.Text + " : " + restOfString);
            }
 
            // Expand the node
            node.Expanded = expandThis;
            traverseLevel = traverseLevel + 1;
            childNode = node.GetFirstChild();
 
            while ((childNode != null))
            {
                Debug.Print(indent + "Node is expanded: " + childNode.Expanded);
                traverse_node(childNode);
                childNode = childNode.GetNext();
            }
 
            traverseLevel = traverseLevel - 1;
 
        }
Когда
childNode = null
код переходит к
traverseLevel - 1
потом к кавычке и сразу перескакивает к
traverse_node(childNode);
Почему?? Почему если условие входа в цикл не выполняется, функция не проходит заново а входит в цикл?

Решение задачи: «.NET 3.x Почему если условие входа в цикл не выполняется, функция заново входит в цикл»

textual
Листинг программы
private void button1_Click(object sender, EventArgs e)
        {
            int i = 0;
 
            ModelDoc2 myModel = default(ModelDoc2);
            FeatureManager featureMgr = default(FeatureManager);
            TreeControlItem rootNode = default(TreeControlItem);
 
            myModel = (ModelDoc2)SwApp.ActiveDoc;
            featureMgr = myModel.FeatureManager;
            rootNode = featureMgr.GetFeatureTreeRootItem2((int)swFeatMgrPane_e.swFeatMgrPaneBottom);
 
            expandThis = true;
 
            for (i = 0; i <= 1; i++)
            {
                if ((rootNode != null))
                {
                    Debug.Print("");
                    traverseLevel = 0;
                    traverse_node(rootNode);
                }
 
                expandThis = false;
 
                if (i == 0)
                {
                    MessageBox.Show("Ok to Collapse All");
                }
            }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы