0

j'ai un code qui obtient les éléments enfants pour un menu via la fonction GetChildren qui prend une liste de menuData:contrôle Null renvoie toujours null, si le rendement retiré objet référence non définie à une instance d'un objet

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 

Si je vérifie si menudata.children n'est pas rien, c'est toujours rien parce que la fonction GetChildren n'est pas encore exécutée (en fournissant les éléments enfants, qui existent). Si je retire cette vérification et juste ce code:

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 

Je suis présenté avec une référence d'objet non définie à une instance d'une erreur d'objet sur menuData.Children.AddRange (GetChildren (menuData))

S'il vous plaît pouvez-vous me dire comment je contourner ce problème? Merci beaucoup

Répondre

1

Votre menuData.Children n'a jamais été instancié, il s'agit donc d'une référence null (Nothing).

Vous devez instancier avant de l'utiliser:

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

sur l'ajout menuData.Children = Nouvelle liste (de MenuData) Je reçois une référence à un membre non partagé nécessite un objet referece – Phil

+0

@Phil - sans sachant comment 'menuData.Children' est implémenté, je ne peux pas vraiment aider davantage. – Oded

+0

Merci pour l'aide. Je l'ai depuis travaillé – Phil