在C#</t>中使用List <t>时,对象引用未设置为对象实例

时间:2010-12-17 01:08:15

标签: c# generics nullreferenceexception

我有以下代码片段产生编译错误:

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

我做错了什么?

4 个答案:

答案 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>();