问题
I have the following code snippet that produces a compilation error:
public List<string> batchaddresses;
public MapFiles(string [] addresses)
{
for (int i = 0; i < addresses.Count(); i++)
{
batchaddresses.AddRange(Directory.GetFiles(addresses[i], "*.esy"));
}
}
I get an error when I try to use the List<T>.AddRange()
method:
Object reference not set to an instance of an object
What am I doing wrong?
回答1:
Where is batchaddresses initialized?
Declaring the variable does not suffice. You must initialize it, like so:
// In your constructor
batchaddresses = new List<string>();
// Directly at declaration:
public List<string> batchaddresses = new List<string>();
回答2:
you have to initialize the list
List<String> batchaddresses = new List<String>();
回答3:
The batchaddresses
field hasn't been initialised. You can initialise it as part of the declaration:
public List<string> batchaddresses = new List<string>();
回答4:
From your snippet, it doesn't look as though batchaddresses
is initialised. Replace the line with this:
public List<string> batchaddresses = new List<string>();
来源:https://stackoverflow.com/questions/4466878/object-reference-not-set-to-an-instance-of-object-when-using-a-listt-in-c-shar