TreeNode创建错误

时间:2016-04-26 03:41:25

标签: c# error-handling treenode

我尝试使用TreeNodes在代码中创建树状结构。我根本不熟悉TreeNodes。我事先做了一些搜索,但我仍然不觉得我完全理解我在做什么。

我正在使用C#在Unity中创建游戏。我使用XML来创建对话,我希望在树状结构中存储来自不同选项的不同选项。

这种形象的直观表现如下:

-------------------------------选择一个-------------- -------------选择b --------------------------------

                /--------|--------\          /--------|--------\

            choice d  choice e  choice f choice g  choice h  choice i

等等。

public class TreeNode<T> : IEnumerable<TreeNode<T>> 
{
    public T Data {get; set;}
    public TreeNode<T> Parent { get; set; }
    public ICollection<TreeNode<T>> Children {get; set;}

    public TreeNode(T data) {
        this.Data = data;
        this.Children = new LinkedList<TreeNode<T>>();
    }

    public TreeNode<T> AddChild(T child) {
        TreeNode<T> childNode = new TreeNode<T>(child) {Parent = this};
        this.Children.Add (childNode);
        return childNode;
    }
}

目前我收到错误TreeNode<T>' does not implement interface member System.Collections.Generic.IEnumerable&gt; .GetEnumerator()&#39;。

我不完全确定该错误甚至意味着什么,我们将不胜感激。

我第一次在StackOverFlow中提出一个问题,所以如果这是错误的地方,请告诉我。

由于

2 个答案:

答案 0 :(得分:0)

问题在于您声明TreeNode<T>(将)实施IEnumerable<TreeNode<T>>。为了正确实现该接口,该类需要实现接口公开的所有方法。

public class TreeNode<T> : IEnumerable<TreeNode<T>> 

删除: IEnumerable<TreeNode<T>>并正确编译。除非您想要实现该接口,否则您需要添加所有IEnumerable方法的实现。

答案 1 :(得分:0)

您可以尝试删除继承的: IEnumerable<TreeNode<T>>,也可以执行System.Collections.IEnumerable.GetEnumerator()方法。

请参阅this主题以获取有关错误的额外读数,并可能进一步了解。

引 “您没有实现System.Collections.IEnumerable.GetEnumerator。 当您实现通用IEnumerable时,您还必须实现System.Collections.IEnumerable的GetEnumerator。