You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB6:如何访问其他类成员数组中的类实例?

VB6中访问类内数组元素的解决方案

问题根源

你最初的写法错误在于:

  • 原Positionen函数返回的是单个Position对象,而非数组,因此无法用(0)索引访问;
  • 即使改成返回position()类型的属性,VB6也不支持直接链式调用k.Positionen(0),必须先将数组赋值给局部变量。

下面提供两种可行的实现方式:


方式一:返回完整数组,通过局部变量访问

修改Kostenvoranschlag类,正确定义返回数组类型的属性,同时补充数组初始化逻辑:

Class Kostenvoranschlag
    Private m_Positionen() As Position
    
    ' 初始化数组及内部的Position实例
    Public Sub InitPositionen(count As Integer)
        ReDim m_Positionen(count - 1)
        Dim i As Integer
        For i = 0 To count - 1
            Set m_Positionen(i) = New Position
        Next i
    End Sub
    
    ' 返回完整的Position数组
    Public Property Get Positionen() As Position()
        Positionen = m_Positionen
    End Property
End Class

Class Position
    Public Betrag As Currency
End Class

外部调用代码:

Dim k As New Kostenvoranschlag
k.InitPositionen(1) ' 先初始化数组和元素
Dim posArray() As Position
posArray = k.Positionen ' 将属性返回的数组赋值给局部变量
posArray(0).Betrag = 5

方式二:添加带索引的属性(更符合VB6习惯)

给Kostenvoranschlag类添加直接通过索引访问单个Position对象的属性,调用更简洁:

Class Kostenvoranschlag
    Private m_Positionen() As Position
    
    ' 初始化数组及内部的Position实例
    Public Sub InitPositionen(count As Integer)
        ReDim m_Positionen(count - 1)
        Dim i As Integer
        For i = 0 To count - 1
            Set m_Positionen(i) = New Position
        Next i
    End Sub
    
    ' 通过索引返回指定位置的Position对象
    Public Property Get Position(index As Integer) As Position
        Set Position = m_Positionen(index)
    End Property
    
    ' 可选:返回数组元素数量的属性
    Public Property Get PositionCount() As Integer
        PositionCount = UBound(m_Positionen) - LBound(m_Positionen) + 1
    End Property
End Class

Class Position
    Public Betrag As Currency
End Class

外部调用代码:

Dim k As New Kostenvoranschlag
k.InitPositionen(1)
k.Position(0).Betrag = 5 ' 直接通过索引访问

注意事项

  • 无论哪种方式,都必须先初始化数组,并且给每个数组元素实例化Position对象(用Set关键字),否则会触发“对象变量或With块变量未设置”错误;
  • 方式二的带索引属性是VB6中处理集合/数组的常用写法,可读性和易用性更强。

内容的提问来源于stack exchange,提问作者tmighty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 11:25:43