2010-12-17 47 views
4

I持ってコンパイルエラー生成し、次のコードスニペット:私はList<T>.AddRange()メソッドを使用しようとするとオブジェクト参照がオブジェクトインスタンスに設定されていません

public List<string> batchaddresses; 

public MapFiles(string [] addresses) 
{ 
    for (int i = 0; i < addresses.Count(); i++) 
    { 
     batchaddresses.AddRange(Directory.GetFiles(addresses[i], "*.esy")); 
    } 
} 

私はエラーを取得します:

Object reference not set to an instance of an object 

私は間違っていますか?

+1

コードを実行しようとすると、オブジェクト参照がオブジェクトのインスタンスに設定されていないことが明らかです。これはコンパイルエラーではなく、ランタイムエラーです。 –

答えて

12

バッチアドレスはどこで初期化されていますか?

変数を宣言するだけでは不十分です。あなたはそうのように、それを初期化する必要があります。

// In your constructor 
batchaddresses = new List<string>(); 

// Directly at declaration: 
public List<string> batchaddresses = new List<string>(); 
1

あなたはbatchaddressesフィールドが初期化されていないリストに

List<String> batchaddresses = new List<String>();

1

を初期化する必要があります。あなたは宣言の一部としてそれを初期化することができます

public List<string> batchaddresses = new List<string>(); 
0

スニペットからbatchaddressesが初期化されるかのように、それは見ていません。

public List<string> batchaddresses = new List<string>(); 
関連する問題