我正在尝试使用TreeNodes在代码中创建一个类似树的结构。我对TreeNodes一点也不熟悉。我之前做了一些搜索,但我仍然觉得我不是很清楚我在做什么。
我正在使用C#在Unity中创建一个游戏。我使用XML创建对话框,并希望将来自不同选项的不同选项存储在树状结构中。
它的可视化表示如下所示:
/--------|--------\ /--------|--------\
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 memberSystem.Collections.Generic.IEnumerable>.GetEnumerator()'.
我甚至不能完全确定这个错误意味着什么,任何帮助都将不胜感激。
我第一次在StackOverFlow中提出问题,所以如果这是在错误的位置,请让我知道。
谢谢
发布于 2016-04-26 11:51:14
问题出在声明TreeNode<T> (将)实现IEnumerable<TreeNode<T>>的代码行中。为了正确地实现该接口,该类需要具有该接口公开的所有方法的实现。
public class TreeNode<T> : IEnumerable<TreeNode<T>> 删除: IEnumerable<TreeNode<T>>,它就会正确编译。当然,除非您想实现该接口,否则需要添加所有IEnumerable方法的实现。
发布于 2016-04-26 11:58:42
您可以尝试删除继承的: IEnumerable<TreeNode<T>>,或者需要实现System.Collections.IEnumerable.GetEnumerator()方法。
请参阅线程,了解有关该错误的一些额外信息,以及可能的进一步了解。
引用“你没有实现System.Collections.IEnumerable.GetEnumerator。当你实现泛型IEnumerable时,你还必须实现System.Collections.IEnumerable的GetEnumerator。”
https://stackoverflow.com/questions/36854869
复制相似问题