我有一些代码通过GetChildren函数获取菜单的子项,该函数获取menuData列表:
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
然后我看到一个Object引用没有设置为menuData.Children.AddRange上的对象错误实例(GetChildren(menuData))
请告诉我如何解决这个问题? 非常感谢
答案 0 :(得分:1)
您的menuData.Children
从未被实例化,因此它是一个null(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