使用VB 6.0将数组作为参数传递给Class setter

时间:2013-10-23 09:37:10

标签: vb6

我需要传递一个String数组来使用它的setter方法设置一个类属性。在Module中声明了数组,并使用Redim Preserve完美地设置了值。调用Class setter方法时会出错。如果我继续没有设置数组数据类型它工作。但我需要将数据类型声明为String

我收到了编译错误“类型不匹配:数组或用户定义的类型预期。”

Module

    Dim sPageDetails() As String
    ' set some values to array

    ' Declare class instance
    dim x as new X
    with x
       .SetPageNumberDetails(sPageDetails)  ' assume SetPageNumberDetails is the setter method in class X
    end with
End module
'class module start X
Private pageDetails() as String

' Setter for pageDetails array
Public Sub SetPageNumberDetails(ByRef sPageDetails() As String)
    pageDetails= sPageDetails
End Sub

' Getter for pageDetails array
Public Function GetPageNumberDetails() As String()
    GetPageNumberDetails= pageDetails
End Function

2 个答案:

答案 0 :(得分:4)

.SetPageNumberDetails(sPageDetails)

Remove the parentheses

.SetPageNumberDetails sPageDetails

答案 1 :(得分:0)

保留括号并添加明确的“调用”:

Call .SetPageNumberDetails(sPageDetails)

需要5-10个CPU时钟(约30纳秒),但代码将更具可读性,可编辑性,可审计性等等。它只是 comme il faut ...