【问题标题】:Null Reference Exception was unhandled in C# VS2008在 C# VS2008 中未处理空引用异常
【发布时间】:2023-12-23 21:37:01
【问题描述】:

我是 VS2008 的新手,我一直在到处寻找,但找不到任何解决问题的方法。代码如下:

 private void btnScan_Click(object sender, EventArgs e)
        {
            {
                if (!msgfilter)
                {
                    this.Enabled = false;
                    msgfilter = true;
                    Application.AddMessageFilter(this);
                }
                tw.Acquire(); <-- This is where the error shows
            }
        }

【问题讨论】:

  • 那么tw到底是什么,你如何创建或初始化它?
  • 什么是 tw ?它在哪里声明
  • 你想在这里做什么?.. 如果tw 为 Null,则会出现 Null 引用。让我们知道tw 来自哪里?
  • 这是相关代码:private bool msgfilter;私人吐温tw;私人 int picnumber = 0; [STAThread] static void Main() { if (Twain.ScreenBitDepth
  • 请发布完整代码

标签: c# visual-studio-2008 ocr


【解决方案1】:

您的 tw 变量未初始化。它的默认值为 null。而且您不能在 null 上调用方法 (.Acquire() ),您需要创建一个真实的对象。

在你的代码中,你错过了这一行

tw = 新的???()

其中的问号需要替换为您的班级类型。

【讨论】:

  • 这是它的样子:-> private Twain tw;
【解决方案2】:

一般来说,当你遇到空引用异常时,最有用的做法是

  • 用调试器运行你的代码,看看哪个对象是空的(我猜你的情况是tw
  • 检查异常的堆栈跟踪,这将为您提供有关错误发生位置、调用者是谁等的更多详细信息

【讨论】:

  • tw.aquired() 是调用已安装的 TWAIN 设备。它以其他形式运行良好。
最近更新 更多