我有以下代码片段产生编译错误:
public List<string> batchaddresses;
public MapFiles(string [] addresses)
{
for (int i = 0; i < addresses.Count(); i++)
{
batchaddresses.AddRange(Directory.GetFiles(addresses[i], "*.esy"));
}
}
当我尝试使用List<T>.AddRange()
方法时出现错误:
Object reference not set to an instance of an object
我做错了什么?
答案 0 :(得分:12)
batchaddresses在哪里初始化?
声明变量是不够的。你必须初始化它,如下所示:
// In your constructor
batchaddresses = new List<string>();
// Directly at declaration:
public List<string> batchaddresses = new List<string>();
答案 1 :(得分:1)
你必须初始化列表
List<String> batchaddresses = new List<String>();
答案 2 :(得分:1)
batchaddresses
字段尚未初始化。您可以将其初始化为声明的一部分:
public List<string> batchaddresses = new List<string>();
答案 3 :(得分:0)
在您的代码段中,看起来batchaddresses
似乎不是初始化的。用以下代码替换:
public List<string> batchaddresses = new List<string>();