我正在处理一个学校项目,我收到了这个错误:NullReferenceException未被用户代码处理
代码:
private MazeGen mazeGen;
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
object[] args = e.Argument as object[];
int value = (int)args[0];
bool solving = (bool)args[1];
if (!solving)
{
this.mazeGen.generateMaze(this.box.Width / value,
(this.box.Height - value) / value);
}
else
{
this.mazeGen.solve();
this.hasSolution = true;
}
this.box.Invalidate();
}
所以错误发生在这部分:" this.mazeGen.generateMaze(this.box.Width / value, (this.box.Height - value)/ value);"
对象mazeGen是一个对象。我已经检查了所有内容,而且课程mazeGen也是公开的,所以我真的不明白为什么程序找不到mazeGen。我还检查了值,宽度和高度是否有值,他们确实如此。
也许这是一个愚蠢的解决方案,但我真的不知道它可能是什么。
答案 0 :(得分:3)
很简单,您没有初始化mazeGen
,所以它是空的。
private MazeGen mazeGen = new MazeGen();