Vb.net 如何在VB中声明结构中的结构数组?

Vb.net 如何在VB中声明结构中的结构数组?,vb.net,structure,Vb.net,Structure,我有一个结构a,其中包含2个整数、1个字符串和另一个结构B的1个数组 在函数中,我想初始化结构B数组的大小,但Microsoft Visual Basic不想接受我所做的所有尝试 结构A Structure XpGrpData Dim Mode As Integer Dim XpValue As Integer Dim Name As String Dim player As XpUsrData() End Stru

我有一个结构a,其中包含2个整数、1个字符串和另一个结构B的1个数组

在函数中,我想初始化结构B数组的大小,但Microsoft Visual Basic不想接受我所做的所有尝试

结构A

    Structure XpGrpData
        Dim Mode As Integer
        Dim XpValue As Integer
        Dim Name As String
        Dim player As XpUsrData()
    End Structure
结构B

    Structure XpUsrData
        Dim Mode As Integer
        Dim XpValue As Integer
        Dim Name As String
    End Structure
我通常是怎么做的

Dim CurrentXpData As XpGrpData
CurrentXpData.player = New XpGrpData(myValue)
但是我的IDE说“对于‘Public Sub New()’的参数太多了”。
如何设置数组的大小?

如您所知,要实例化我将使用的结构:

Dim CurrentXpData as XpGrpData = New XpGrpData()
将参数传递到构造函数时,它希望您已经定义了要对参数执行的操作。例如,在结构/类中,您将添加一个新的()子例程:

public sub New(myInput)
    me.someProperty = myInput
end sub

如前所述,您可能需要考虑一个类,除非您特别需要一个结构。p> 这个模式对我来说很有效,可以解决棘手的语法错误:

Dim temp(myValue) As XpGrpData
CurrentXpData.player = temp

您需要添加一个构造函数
Sub New()
,该构造函数为该结构中的每个字段都接受一个参数。也。。。。理想情况下,一个结构是不可变的——如果把它当作任何旧的对象来考虑,就把它构造成<代码>类< /代码>。我同意金敦先生的观点。还可以使用
列表(您的类)
而不是数组,这样做更好,您可以更高效地访问您的项目。