2

我需要传递一个String数组来使用它的 setter 方法设置一个类属性。Array 是在 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
4

2 回答 2

4
.SetPageNumberDetails(sPageDetails)

删除括号

.SetPageNumberDetails sPageDetails
于 2013-10-23T09:43:30.253 回答
-1

保留括号并添加明确的“呼叫”:

Call .SetPageNumberDetails(sPageDetails)

它花费了 5-10 个 CPU 周期(约 30 纳秒),但代码将更具可读性、可编辑性、可审计性等。而且它只是comme il faut ...。

于 2018-03-15T19:04:58.653 回答