0

I이 menuData의 목록이 소요되는 GetChildren 기능을 통해 메뉴에 대한 하위 항목을 가져옵니다 일부 코드 :NULL 체크는 항상 제거 반환 참조 객체 경우 개체의 인스턴스로 설정되지 않았습니다, 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은 인스턴스화 된 적이 없으므로 null (Nothing) 참조입니다.

당신은 당신이 그것을 사용하기 전에 인스턴스화해야합니다 menuData.Children = 새로운 목록을 (MenuData의) '비 공유 멤버에 대한 참조를 얻을 수 추가에

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

것은 – Phil

+0

@Phil 객체 referece이 필요 -없이 'menuData.Children'이 어떻게 구현되는지 알면서, 나는 더 많은 것을 정말로 도울 수 없다. – Oded

+0

도움을 주셔서 감사합니다. 나는 그 이후로 일 해왔다. – Phil

관련 문제