关于泛型:在C#中使用列表时,对象引用未设置为对象的实例

Object reference not set to an instance of object when using a List<T> in C#

本问题已经有最佳答案,请猛点这里访问。

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

1
2
3
4
5
6
7
8
9
public List<string> batchaddresses;

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

我尝试使用List.AddRange()方法时出错:

1
Object reference not set to an instance of an object

我做错什么了?


批处理地址在哪里初始化?

声明变量不够。您必须初始化它,如下所示:

1
2
3
4
5
// In your constructor
batchaddresses = new List<string>();

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

batchaddresses字段尚未初始化。您可以将其初始化为声明的一部分:

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


你必须初始化列表

List batchaddresses = new List();


从您的代码片段来看,它看起来不像是初始化了batchaddresses。将行替换为:

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