树视图节点添加返回null

时间:2014-02-28 17:26:00

标签: c#

   string partName = "";
            string confName = "";
            string workName = "";
            foreach (string[] e in instance.aWkshpJag)
            {
                foreach (string[] ex in instance.aPartJag)
                {
                    if (e[0] == ex[0])
                    {
                        partName = ex[1] + " " + ex[2];
                        confName = ex[4];
                        break;
                    }
                }
                foreach (string[] exr in instance.aWorkJag)
                {
                    if (e[1] == exr[0])
                    {
                        workName = exr[2];
                    }
                }
                treeViewWkshp.BeginUpdate();
                treeViewWkshp.Nodes[confName].Nodes[workName].Nodes.Add(partName);
                treeViewWkshp.EndUpdate();

            }

即使所有变量都有值,也会抛出一个null异常。这可能是什么原因?

-EDIT-增加了更多的代码块。

抛出空例外
treeViewWkshp.Nodes[confName].Nodes[workName].Nodes.Add(partName);

System.NullReferenceException was unhandled
  HResult=-2147467261
  Message=Object reference not set to an instance of an object.
  Source=FBLA_App

2 个答案:

答案 0 :(得分:1)

显然并非所有变量都有值。尝试拆分您的代码行,以便一次声明和访问一个节点。

答案 1 :(得分:0)

如果你像这样重写违规行,你仍会得到相同的NullReferenceException,但它将在一行只包含一个空引用的可能性。

var confNode = treeViewWkshp.Nodes[confName];
var workNode = confNode.Nodes[workName];
var workNodeChildren = workNode.Nodes
workNodeChildren.Add(partName);