在我的代码顶部(构造函数之前),我写道:
String[] CAN = null;
此字符串数组在另一个函数中更新。
稍后在我的代码中我有这个foreach循环:
foreach (String str in CAN)
{
if(str.Contains("18FA07FE"))
cmdResult = true;
else
cmdResult = false;
}
我试过调试,在foreach语句的行中我可以看到CAN字符串数组已成功更新,现在包含1211个元素。
所以我真的不知道为什么它会给我这个例外。
答案 0 :(得分:4)
如果问题只与您展示的代码和您描述的代码有关,而且数组中有元素,那么唯一可能的解释就是{{1}中的一个元素}是一个null元素,因此它不是foreach 本身抛出异常,但是这一行:
CAN
答案 1 :(得分:2)
可能其中一个字符串值为null
string [] CAN = { "first", "second", null, "fourth" };
foreach ( string str in CAN ) {
if ( str.Contains( "fourth" ) ) {
Console.WriteLine( "Success" );
}
}
答案 2 :(得分:0)
你在哪里获得NullPointer?是循环还是if?我猜你的数组包含一个'null'元素,它会抛出这个NPE。