Vb.net Null检查始终返回Null,如果删除返回未设置为对象实例的对象引用
我有一些代码,可以通过获取菜单数据列表的GetChildren函数获取菜单的子项:Vb.net Null检查始终返回Null,如果删除返回未设置为对象实例的对象引用,vb.net,list,function,nullreferenceexception,object-reference,Vb.net,List,Function,Nullreferenceexception,Object Reference,我有一些代码,可以通过获取菜单数据列表的GetChildren函数获取菜单的子项: 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 menuDa
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是否为nothing,则它始终为nothing,因为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))上对象错误的实例
你能告诉我如何解决这个问题吗?
非常感谢您的
菜单数据。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
在添加menuData.Children=新列表(menuData)时,我获得对非共享成员的引用需要一个对象referece@Phil-在不知道如何实现
menuData.Children
的情况下,我真的无法提供更多帮助。