【问题标题】:How to use Property Let for Arrays?如何为数组使用 Property Let?
【发布时间】:2011-07-16 00:59:45
【问题描述】:

我对 VBS 很陌生,但我似乎无法实现即使是最简单的东西。我想要一个在私有成员中保存数组的类。因为我想“注入”数组,所以我尝试使用Let 功能实现“setter-method”。

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 运行时错误 (...):类型不匹配”。我还尝试使用“ByVal”、“ByRef”的不同组合,但由于完全没有使用 VBS 的经验,我找不到解决方案。那么我做错了什么?

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

【问题讨论】:

    标签: arrays vbscript properties getter-setter


    【解决方案1】:

    罪魁祸首是

    Private m_AllowedTasks()
    

    它创建了一个可憎的 - 一个没有大小的固定数组。只需删除 ()。

    Private m_AllowedTasks
    

    创建一个(空)变体,可以设置=让一个有用的(可重新调整的)数组。

    【讨论】:

      猜你喜欢
      • 2015-03-29
      • 1970-01-01
      • 2011-06-29
      • 1970-01-01
      • 2019-01-29
      • 1970-01-01
      • 2016-02-09
      • 2018-10-28
      • 2017-10-04
      相关资源
      最近更新 更多