如何为数组使用属性Let



我是很新的VBS,但我不能实现即使是最简单的事情,因为它似乎。我想要一个在私有成员中保存数组的类。因为我想"注入"数组,我试图使用Let功能实现一个"setter方法"。

Class CPhase
    Private m_AllowedTasks()
    Public Property Let AllowedTasks(p_AllowedTasks)
        m_AllowedTasks = p_AllowedTasks
    End Property
    Private Sub Class_Initialize()
        ReDim m_AllowedTasks(0)
End Sub
End Class

这个类的用法如下:

Dim allowed
allowed = Array("task1", "task2")
Dim phase
Set phase = New CPhase 
phase.AllowedTasks = allowed

这会导致let方法中的"Microsoft VBScript runtime error(…):Type mismatch"。我还尝试使用"ByVal","ByRef"的不同组合,但由于完全没有VBS的经验,我找不到解决方案。那么我做错了什么呢?

任何提示或链接到有用的资源非常感谢!谢谢!

罪魁祸首是

Private m_AllowedTasks()

创建一个没有大小的固定数组。只要去掉()。

Private m_AllowedTasks

创建一个(空的)变量,该变量可以设置为一个有用的(可重新定义的)数组。

最新更新