我有一个以System.Windows.Forms中的TreeNode类型的变量开头的类。该类的函数工作是添加一些节点到这个变量..但问题是,当我尝试添加一些节点,调试器冻结,并没有显示任何响应..我搜索了互联网,但我没有找到这样的问题。这是其中一个功能
注意:产生问题的行已注释
public Node Factor()
{
Node result = new Node();
if (count < tokens.Count && tokens[count] == TokenType.LeftParentheses)
{
this.Match(TokenType.LeftParentheses);
result = this.Expression();
if (!this.Match(TokenType.RightParentheses))
return null;
result.viewnode.Text = "Expression";
}
else if (tokens[count] == TokenType.Num)
{
if (!this.Match(TokenType.Num))
return null;
NumberNode nnode = new NumberNode(lexemes[count - 1]);
nnode.childs = "NumberNode : Value " + nnode.value + '\n';
nnode.viewnode = new TreeNode("Number - Value = " + nnode.value);
result = nnode;
result.viewnode = nnode.viewnode;
result.viewnode.Nodes.Add(nnode.viewnode);
}
else
{
if (!this.Match(TokenType.ID))
return null;
IdNode inode = new IdNode(lexemes[count - 1], "0");
inode.childs = "IdNode - Value : " + inode.name + '\n';
inode.viewnode = new TreeNode("Id - " + inode.name);
result = inode;
result.viewnode = inode.viewnode;
//the program freezes at this line
inode.viewnode.Nodes.Add(inode.viewnode);
}
return result;
}
答案 0 :(得分:1)
您正在将节点添加到自身。
应该是result.viewnode ...