Foreach не может работать с группой методов - PullRequest
8 голосов
/ 25 октября 2011
private void PrintRecursive(TreeNode treeNode)
    {
        foreach (TreeNode tn in treeNode.Nodes)
        {
            PrintRecursive(tn);
        }
    }

Я получаю ошибку: Foreach не может работать с группой методов.Вы намеревались вызвать «группу методов»?

Ответы [ 3 ]

12 голосов
/ 03 августа 2012

Проблема здесь в том, что Nodes - это метод, но вы используете его как свойство :) Так что эта строка кода

foreach (TreeNode tn in treeNode.Nodes)

должна быть

foreach (TreeNode tn in treeNode.Nodes())
6 голосов
/ 25 октября 2011

Если вы используете упакованный элемент управления TreeView, не должно ли оно быть ChildNodes?:

foreach (TreeNode node in treeNode.ChildNodes) ...
1 голос
/ 25 октября 2011

TreeView.Nodes предоставляет коллекцию объектов TreeNode, представляющих корневые узлы в элементе управления TreeView.

Чтобы получить доступ к дочерним узлам корневого узла, используйте свойство ChildNodes узла.

например. использование для цикла

void  PrintRecursive(TreeNode node)
{
  for(int i=0; i <node.ChildNodes.Count; i++)
  {
    PrintRecursive(node.ChildNodes[i]);
  }
}

или используя foreach

void  PrintRecursive(TreeNode node)
{
  foreach(TreeNode node in node.ChildNodes)
  {
    PrintRecursive(node);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...