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

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

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

Сам код:
Листинг программы
  1. private void traverse_node(TreeControlItem node)
  2. {
  3. TreeControlItem childNode = default(TreeControlItem);
  4. Feature featureNode = default(Feature);
  5. int nodeObjectType = 0;
  6. object nodeObject = null;
  7. string restOfString = "";
  8. string indent = "";
  9. int i = 0;
  10. bool displayNodeInfo = true;
  11. nodeObjectType = node.ObjectType;
  12. nodeObject = node.Object;
  13. if ((nodeObject != null))
  14. {
  15. featureNode = (Feature)nodeObject;
  16. restOfString = "[FEATURE: " + featureNode.Name + "]";
  17. }
  18. if ((displayNodeInfo))
  19. {
  20. Debug.Print(indent + node.Text + " : " + restOfString);
  21. }
  22. // Expand the node
  23. node.Expanded = expandThis;
  24. traverseLevel = traverseLevel + 1;
  25. childNode = node.GetFirstChild();
  26. while ((childNode != null))
  27. {
  28. Debug.Print(indent + "Node is expanded: " + childNode.Expanded);
  29. traverse_node(childNode);
  30. childNode = childNode.GetNext();
  31. }
  32. traverseLevel = traverseLevel - 1;
  33. }
Когда
Листинг программы
  1. childNode = null
код переходит к
Листинг программы
  1. traverseLevel - 1
потом к кавычке и сразу перескакивает к
Листинг программы
  1. traverse_node(childNode);
Почему?? Почему если условие входа в цикл не выполняется, функция не проходит заново а входит в цикл?

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

textual
Листинг программы
  1. private void button1_Click(object sender, EventArgs e)
  2.         {
  3.             int i = 0;
  4.  
  5.             ModelDoc2 myModel = default(ModelDoc2);
  6.             FeatureManager featureMgr = default(FeatureManager);
  7.             TreeControlItem rootNode = default(TreeControlItem);
  8.  
  9.             myModel = (ModelDoc2)SwApp.ActiveDoc;
  10.             featureMgr = myModel.FeatureManager;
  11.             rootNode = featureMgr.GetFeatureTreeRootItem2((int)swFeatMgrPane_e.swFeatMgrPaneBottom);
  12.  
  13.             expandThis = true;
  14.  
  15.             for (i = 0; i <= 1; i++)
  16.             {
  17.                 if ((rootNode != null))
  18.                 {
  19.                     Debug.Print("");
  20.                     traverseLevel = 0;
  21.                     traverse_node(rootNode);
  22.                 }
  23.  
  24.                 expandThis = false;
  25.  
  26.                 if (i == 0)
  27.                 {
  28.                     MessageBox.Show("Ok to Collapse All");
  29.                 }
  30.             }
  31.         }

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


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

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

8   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы