我是很新的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
创建一个(空的)变量,该变量可以设置为一个有用的(可重新定义的)数组。