Overflowers de pile:
J'ai saisi mon cerveau en essayant d'obtenir une liste (de t) Type Type pour être la propriété d'une classe. Je sais qu'il doit y avoir un moyen simple de le faire et je ne trouve pas un bon exemple sur Google. Chaque fois que je crée une classe que je pense fonctionnera, je reçois la "référence d'objet non définie sur une instance d'une erreur d'objet" lorsque j'essaie de l'utiliser. Je pense maintenant que je ne peux pas l'utiliser dans la façon dont j'espérais. Voici ma dernière tentative: p> J'essaie de renvoyer la classe MasterItem à partir d'une fonction de test comme ceci: p> Qu'est-ce que je fais mal ici? Merci d'avance. P> p>
3 Réponses :
Vous n'avez pas créé d'instance de liste que vous essayez de mettre des éléments à.
Initialisez-le dans le constructeur de votre classe d'accessoires. Quelque chose comme p>
Vous avez 2 options pour éviter la nullreferenceException:
1) L'approche Elder_George mentionnée, où vous initialisez la propriété à une nouvelle instance de la classe: p> Le problème avec cette approche est que si vous ne l'initialisez pas quelque part que vous savez qu'il sera toujours valide à utiliser plus tard, vous devrez faire le même chèque et / ou initialiser. Que "quelque part" pourrait être sur une charge de forme ou telle. P> 2) Initialisez la variable du magasin de support de la propriété. Faites cela une fois et vous n'avez pas besoin de vérifier pour NULL tout le temps. Notez la modification de la déclaration avec ce qui précède, vous y accéderiez directement comme suit: P> _Item code> ci-dessous: p>
Dim ReturnItem As New MasterItem
ReturnItem.PrimaryItem.ItemNo = "TEST123"
Je savais que c'était quelque chose de simple, je viens de négliger. L'option n ° 2 correspondra parfaitement à ma situation. Merci.
Changé ma réponse accessive au poste d'Elder_George après avoir fait des recherches supplémentaires et testant les deux suggestions.
Essayez quelque chose comme ça ..
Public Class ActiveInfo Private _services As List(Of ActiveService) Public Sub New() _services = New List(Of ActiveService) End Sub Public Property Services() As List(Of ActiveService) Get Return _services End Get Set(ByVal value As List(Of ActiveService)) _services = value End Set End Property End Class
Tu as raison - c'est une collection. Il était tard quand je l'ai tapé.