2016-08-30 57 views
-3

親と子のリストを持つことができるディレクトリのクラスを作成しようとしています。自己参照クラス

クラス定義:2つのインスタンスを作成し、他の子として1を設定しようと

class Directory { 
    public string name; 
    public Directory parentDir; 
    public List<Directory> subDirs; 

    public Directory(string name) { 
     this.name = name; 
    } 

    public void addSubDir(Directory x) { 
     subDirs.Add(x); 
    } 
} 

サンプルコード:

Directory temp1 = new Directory("root"); 

Directory temp2 = new Directory("games"); 

temp1.addSubDir(temp2); 

私が手にエラーがある:

System.NullReferenceException was unhandled 
    Message=Object reference not set to an instance of an object. 
+0

subDirsを初期化するのを忘れます。 'public list subDirs = new List ();' :) –

+0

これらの質問がどのように重複しているか説明してください。私はクラスに同じ型へのポインタであるメンバが含まれていることで間違っていることを尋ねています。問題は私がそのメンバーを初期化していないことでした。他の質問ははるかに抽象的で、私の特定の問題のための検索にはまったく出てこないでしょう。彼らはこれまでに削除されていますが、これがちょうどジョークかトロールなのかわかりません。 –

+0

基本的に私はエラーYを与える問題Xの解決策を求めています。もう1つの質問はエラーYについてです。エラーYになる可能性がある多くの問題があります。 –

答えて

2

これをインスタンス化したことはありません

012これに

変更して:あなたはタイトルに入れているので

public List<Directory> subDirs = new List<Directory>(); 

、私はコメントだろうと思いました。あなたのエラーは自己参照クラスであることとは何の関係もありません。これを行うことができたことでエラーが発生した場合、実行時エラーではなくコンパイル時エラーが発生します。

+0

それはうまくいきました。ありがとう –

+0

うれしい私は助けることができました! – kemiller2002

+0

私は参照してください。コンストラクタでsubDirsリストをインスタンス化する方がよいでしょうか? –