c#NullReferenceException但一切看起来都不错

时间:2014-03-26 21:11:40

标签: c# visual-studio nullreferenceexception

我正在处理一个学校项目,我收到了这个错误: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。我还检查了值,宽度和高度是否有值,他们确实如此。

也许这是一个愚蠢的解决方案,但我真的不知道它可能是什么。

1 个答案:

答案 0 :(得分:3)

很简单,您没有初始化mazeGen,所以它是空的。

private MazeGen mazeGen = new MazeGen();