0

我有一些代碼,獲取子項通過的GetChildren功能的菜單這需要menuData的列表:空檢查始終返回null,如果去掉返回對象引用不設置到對象的實例

Dim builtMenu As New List(Of MenuData)(_rawData.FindAll(Function(item) item.GroupingID = 0)) 

For Each menuData As MenuData In builtMenu 
      If menuData.Children IsNot Nothing Then 
      menuData.Children.AddRange(GetChildren(menuData)) 
      End If 
     Next 

如果我檢查menudata.children是否不是什麼都不是,它始終沒有什麼,因爲GetChildren函數尚未運行(提供子項目,它確實存在)。如果我刪除此檢查,只是有這樣的代碼:

Dim builtMenu As New List(Of MenuData)(_rawData.FindAll(Function(item) item.GroupingID = 0)) 

For Each menuData As MenuData In builtMenu 
      menuData.Children.AddRange(GetChildren(menuData)) 
     Next 

然後我提出了一個對象引用未設置到menuData.Children.AddRange(的GetChildren(menuData))的對象錯誤的實例

請你能告訴我如何解決這個問題嗎? 非常感謝

回答

1

您的menuData.Children從未被實例化過,所以它是空的(Nothing)的引用。

您需要在使用前進行實例化:

Dim builtMenu As New List(Of MenuData)(_rawData.FindAll(Function(item) item.GroupingID = 0)) 
menuData.Children = New List(Of MenuData) 

For Each menuData As MenuData In builtMenu 
    menuData.Children.AddRange(GetChildren(menuData)) 
Next 
+0

上添加menuData.Children =新名單(共MenuData)我得到一個參考到非共享成員需要對象referece – Phil 2010-06-24 08:07:40

+0

@Phil - 無知道'menuData.Children'是如何實現的,我真的無法幫到更多。 – Oded 2010-06-24 08:12:19

+0

感謝您的幫助。我已經得到它的工作 – Phil 2010-06-25 09:32:13

相關問題