这段代码:
public void collide(int x, int y)
{
int foodthen=0;
for(int xt=0;xt<150;xt++)
{
for(int yt=0;yt<55;yt++)
{
~ if(MainClass.tilesSet[yt,xt].food=true)
{
foodthen++;
}
}
}
Debug.WriteLine("Food then: "+foodthen);
if(this.Equals(MainClass.fridge)||this.Equals(MainClass.tree))
{
if(MainClass.tilesSet[y,x].food)
{
MainClass.tilesSet[y,x].food=false;
MainClass.Log("You found some food!");
MainClass.player.food++;
}
else
{
MainClass.Log("There is no food... :(");
}
}
MainClass.player.updateFood();
}
这会在标有“~”的行处引发 NullReferenceException。与标有“#”的行中的相同代码似乎没问题,当我在没有抛出代码的情况下测试它时不会抛出异常。为什么它只发生在 for 循环中?