【问题标题】:c# NullReferenceException but everything looks okc# NullReferenceException 但一切正常
【发布时间】: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


【解决方案1】:

简单地说,你没有初始化mazeGen,所以它是空的。

private MazeGen mazeGen = new MazeGen();

【讨论】:

  • 我想我现在有问题了!谢谢你的回答。当我问一个问题时总是很愚蠢,我得到了更多的灵感>
猜你喜欢
  • 2016-11-27
  • 1970-01-01
  • 1970-01-01
  • 2011-06-03
  • 2019-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-13
相关资源
最近更新 更多