【发布时间】:2014-03-26 21:11:39
【问题描述】:
我正在做一个学校项目,我收到了这个错误:NullReferenceException is unhandled by user code
代码:
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。我还检查了 value、width 和 height 是否有值,它们确实有。
也许这是一个愚蠢的解决方案,但我真的不知道它会是什么。
【问题讨论】:
-
使用调试器,卢克!
mazeGen是否为空? -
Tengential,但您使用的是安全演员表,因此您应该检查
args == null。否则一开始就没有使用保存强制转换的意义。
标签: c# visual-studio nullreferenceexception