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

时间:2019-05-01 19:12:22

标签: vb.net structure

我有一个结构A,其中包含2个整数,1个String和另一个Struct 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()'的参数过多”。 如何设置数组的大小?

2 个答案:

答案 0 :(得分:0)

正如您现在所拥有的,要实例化我将使用的结构:

Dim CurrentXpData as XpGrpData = New XpGrpData()

将参数传递给构造函数时,它期望您已定义要对参数进行的操作。例如,在struct /类中,您将添加一个New()子例程:

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

如前所述,除非特别需要Struct,否则您可能要考虑Class。 They handle memory differently and a class is usually advantageous

答案 1 :(得分:0)

这个模式对我有用,可以解决尴尬的语法错误:

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