VB.NET需要一个类属性作为列表数组

Nin*_*omb 6 .net vb.net asp.net arrays class

Stack Overflowers:

我一直绞尽脑汁试图让List(of T)类型数组成为类的属性.我知道必须有一个简单的方法,我在谷歌上找不到一个好的例子.每次我创建一个我认为可以工作的类时,当我尝试使用它时,我得到"对象引用没有设置为对象的实例"错误.我现在的想法是,我不能按照我希望的方式使用它.这是我最近的尝试:

Public Class Item
    Private _itemno As String
    Public Property ItemNo() As String
        Get
            Return _itemno
        End Get
        Set(ByVal value As String)
            _itemno = value
        End Set
    End Property
        //Many more properties in here
End Class


Public Class Accessory
    Private _items as List(of Item)
    Public Property Items() As List(of Item)
        Get
            Return _itemno
        End Get
        Set(ByVal value As List(of Item))
            _itemno = value
        End Set
    End Property
End Class

Public Class MasterItem
    Private _item as Item
    Public Property PrimaryItem as Item
        Get
            Return _item
        End Get
        Set(ByVal value As Item)
            _item = value
        End Set
    End Property

    Private _accessories as Accessory
    Public Property Accessories() As Accessory
        Get
            Return _accessories
        End Get
        Set(ByVal value As Accessory)
            _accessories = value
        End Set
    End Property
End Class
Run Code Online (Sandbox Code Playgroud)

我试图从这样的测试函数返回MasterItem类:

Public Shared Function GetItem() as MasterItem
    Dim testItem as new MasterItem

    ReturnItem.PrimaryItem.ItemNo = "TEST123"

    ReturnItem.Accessories.Items.add(New Item("TESTACC1"))
    ReturnItem.Accessories.Items.add(New Item("TESTACC2"))

    Return testItem
End Function
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?提前致谢.

eld*_*rge 13

您尚未创建要将项目放入的列表实例.

在Accessory类的构造函数中初始化它.就像是

Public Sub New()
    _items = New List(Of Item)
End Sub
Run Code Online (Sandbox Code Playgroud)