我读了很多关于泛型列表和NullReferenceExceptions的原因,但在我的情况下看起来我已经做好了一切,但仍然得到了着名的错误。
我在类的顶部初始化一个通用List:
List<CustomType> customTypes = new List<CustomType>();
然后我将一些项添加到列表中,当然我调试计数和名称以确保没有空条目。如果不进一步触摸列表,我称之为:
string newString = GetString("some string", customTypes);
它的结构如下:
public string GetString(string value, List<CustomType> cTypes)
{
// in my case I add two items to the customTypes list, when the form is loaded
Console.WriteLine(customTypes.Count); // output: 2
Console.WriteLine(cTypes.Count); // output: 2
foreach(CustomType ct in cTypes)
{
// All I do within this foreach is just debugging
Console.WriteLine("Current item: " + ct.ToString()); // NullReferenceException ct seems to be null
}
return value;
}
我不知道为什么会抛出错误。有什么想法吗?
编辑:实际上,foreach循环中的第一件事是:Console.WriteLine("Current item: " + ct.ToString())
//抛出错误并告诉我ct为null,但这怎么可能呢?控制台告诉我两个列表中都有项目?!