使用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)