2016-04-26 9 views
3

私はTreeNodeを使用して、コードのようなツリー構造を作成しようとしています。私はTreeNodesを全くよく知っているわけではありません。私は事前にいくつかの検索をしましたが、私がやっていることを正確に理解しているような気がしません。TreeNode作成エラー

私はUnityでC#を使用してゲームを作成しています。私は対話を作成するためにXMLを使用しています。ツリーのような構造のさまざまな選択肢からさまざまなオプションを格納したいと思います。この

視覚的な表現は次のようになります:

-------------------------------選択肢A --------------------------- choice 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> .GetEnumeratorを()」取得しています。

私はそのエラーがどんな意味を持つのかよくわからないので、どんな助けもありがたいです。

私が初めてStackOverFlowで質問をしたので、間違っている場合は教えてください。

おかげ

+0

はあなたを解決できました を引用

問題? – gnalck

+0

はい!助けてくれてありがとう。 – Carbonroast

答えて

0

問題は、TreeNode<T>IEnumerable<TreeNode<T>>を実装する(だろう)ことを宣言行です。そのインタフェースを適切に実装するためには、インタフェースが公開するすべてのメソッドの実装が必要です。

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

: IEnumerable<TreeNode<T>>を削除すると、正しくコンパイルされます。もちろん、そのインタフェースを実装したいのでない限り、すべてのIEnumerableメソッドの実装を追加する必要があります。

0

継承された: IEnumerable<TreeNode<T>>を削除するか、System.Collections.IEnumerable.GetEnumerator()メソッドを実装する必要があります。

thisスレッドを参照してください。このエラーについての追加情報があります。 「あなたはSystem.Collections.IEnumerable.GetEnumeratorを実装していませんでした。 あなたはジェネリックのIEnumerableを実装するときは、またSystem.Collections.IEnumerableのGetEnumeratorメソッドを実装する必要があります。