2010-12-17 44 views
4

我有下面的代碼片段產生編譯錯誤:當我嘗試使用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

顯然,「對象引用不設置到對象的實例」當您嘗試執行代碼ocurrs。這不是一個編譯錯誤,它是一個運行時錯誤。 – 2010-12-17 01:50:03

回答

12

batchaddresses在哪裏初始化?

聲明該變量不夠。你必須初始化它,就像這樣:

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

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

你必須初始化列表

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

1

batchaddresses領域還沒有被初始化。您可以初始化它作爲聲明的一部分:

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

從你的片段,彷彿batchaddresses被初始化不看。這種替換行:

public List<string> batchaddresses = new List<string>(); 
相關問題