2014-02-28 38 views
1
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(); 

      } 

即使所有變量都有值,這仍會拋出空異常。可能的原因是什麼?樹視圖節點添加返回空值

-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

需要更多的細節。 null異常在哪裏?顯示實際的錯誤信息 – Almo

+0

提供異常堆棧跟蹤 – Crono

+0

「treeViewWkshp」的類型是什麼?這是一個WPF或WinForms應用程序? –

回答

0

如果你重新寫這樣的違規線,你仍然會得到相同的NullReferenceException,但它將在一行只包含一個空引用的可能性。

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

工作名稱有一個值,但是var workNodeChildren = workNode.Nodes;返回null。這是什麼意思? – SoulOfSet

+0

如果'workNode.Nodes'返回null,那麼這表明有'workNode'沒有子節點... –

+0

我已經有一個父節點和它下面的小孩節點。我如何將另一個節點添加到子節點 – SoulOfSet

1

拋出顯然不是所有的變量都值。嘗試分割您的代碼行,以便一次聲明和訪問一個節點。