0

menuData のリストを取得する 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
            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)) のオブジェクト エラーのインスタンスに設定されていないオブジェクト参照が表示されます。

この問題を回避する方法を教えてください。どうもありがとう

4

1 に答える 1

1

YourmenuData.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
于 2010-06-24T07:59:46.970 に答える