使用ClassModule属性添加数组键

我有一个ClassModule包含私有属性m_Invalid() as String

我需要的是两个属性,一个允许公共访问获得整个数组,一个允许私人访问添加一个键到数组。

我已经想出了这个,但如果我尝试使用AddInvalid( Me.AddInvalid ("Test")我得到一个编译错误 –

属性的用户无效

有人知道我在做什么错吗? 谢谢,

 Public Property Get Invalid() As String() Invalid = m_Invalid End Property Public Property Let AddInvalid(ByVal Value As String) Dim ArrayLength As Integer ArrayLength = UBound(m_Invalid) ReDim Preserve m_Invalid(ArrayLength) m_Invalid(ArrayLength) = Value End Property 

为什么AddInvalid需要成为一个属性? 只要将其更改为一个子(或function),它将工作,但名称不能与现有的属性相同:

 Public Sub AddItem(psTest As String) Dim ArrayLength As Integer ArrayLength = UBound(m_invalid) ReDim Preserve m_invalid(ArrayLength) m_invalid(ArrayLength) = psTest End Sub 

另外,你的代码不会做你认为的事情。 从我所能看到的情况来看,它所做的一切就是将其恢复到原来的大小,然后覆盖最后一个值。 将其中一个添加到ReDim语句以增加数组:

  ReDim Preserve m_invalid(ArrayLength + 1)