Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 空引用-如何判断哪个变量是空引用?_C#_Exception_Null - Fatal编程技术网

C# 空引用-如何判断哪个变量是空引用?

C# 空引用-如何判断哪个变量是空引用?,c#,exception,null,C#,Exception,Null,好吧,我有点困惑。我在Try.Catch中输入了一行代码,它给了我以下信息: 对象引用未设置为对象的实例 代码行是: MainFormRef.xtraTabControl_Results.TabPages.Add(xtraTabPage_Results); 这些是DevExpress控件 在这里,我将在例程开始时创建的TabPage添加到TabControl_Results,这是我在表单上放置的控件。所以-我知道这两个物体都存在。我甚至还添加了引用它们的代码,而且不会引

好吧,我有点困惑。我在Try.Catch中输入了一行代码,它给了我以下信息:

对象引用未设置为对象的实例

代码行是:

            MainFormRef.xtraTabControl_Results.TabPages.Add(xtraTabPage_Results);
这些是DevExpress控件

在这里,我将在例程开始时创建的TabPage添加到TabControl_Results,这是我在表单上放置的控件。所以-我知道这两个物体都存在。我甚至还添加了引用它们的代码,而且不会引发异常。
同样,这是一个我从代码中的另一个地方调用的例程,它工作得很好。所以-我正在做的某些事情一定是导致当前代码路径中出现此错误的原因。但我必须承认我很困惑。
有没有办法判断哪个对象引用是空的?似乎不是代码行中的任何一个对象导致了异常

如有任何建议,将不胜感激

代码-导致异常的代码

    public DevExpress.XtraTab.XtraTabPage AddResultGridTabObject()
    {
        DevExpress.XtraTab.XtraTabPage xtraTabPage_Results = new DevExpress.XtraTab.XtraTabPage();

        var NewTabObject = new UserControl_ResultsTab();
        NewTabObject.TrackerId = SavedTrackerId;
        NewTabObject.FormType = TAIIDFormType.ftResultsGrid;
        TabList.Add(NewTabObject);
        xtraTabPage_Results.Controls.Add(NewTabObject);     // Add to the Collection 
        NewTabObject.Dock = DockStyle.Fill;                 // Now have it take up the entire Tab
        try
        {
            MessageBox.Show("Name: " + 
                MainFormRef.xtraTabControl_Results.TabPages.Count.ToString());
            MainFormRef.xtraTabControl_Results.TabPages.Add(xtraTabPage_Results);
        }
        catch (Exception Error)
        {
            MessageBox.Show("Error while Saved Encrypted File: " + Error.Message);
        }
        MainFormRef.xtraTabControl_Results.SelectedTabPage = xtraTabPage_Results;
        return xtraTabPage_Results;
    }

我知道以下方法:

  • 调试和检查
  • 伐木

  • 通常情况下,我会在调试程序检查每个变量的情况下逐步执行代码。我没有使用DevExpress,但我的另一个想法是,
    XtraTabPage
    控件可能需要设置某些属性,而该属性尚未设置。您可以向代码中添加检查以确定什么是null。John,我必须使用DevExpress进行检查-因为我在此代码中检查的每个变量都显示为已分配。。。如果我知道发生了什么,我会更新这个…大家好-谢谢你们的回复!我一直在使用调试器并跟踪代码-但似乎每个对象都被正确分配(?)-但我仍然得到空引用。行MainFormRef.xtraTabControl_Results.TabPages.Add(xtraTabPage_Results);此行上的对象和“NewTabObject”都已指定且不为空。我不得不承认我很困惑。。。我将与DevExpress核实可能发生的情况。。。