在下面的代码,得到了一个编译时间错误,因为i作为一个变体治疗。该错误是: “ByRef参数类型不匹配”

但是,如果我传递参数ByVal,没有错误为什么?

Private Sub Command2_Click()
    Dim i, j As Integer
    i = 5
    j = 7
    Call Swap(i, j)
End Sub

Public Sub Swap(ByRef X As Integer, ByRef Y As Integer)
    Dim tmp As Integer
    tmp = X
    X = Y
    Y = tmp
End Sub
有帮助吗?

解决方案

BYVAL autoconverts所述的变体进入整数,因为它是传递的值。虽然为ByRef正试图通过,你可以在子程序修改变量的值。在本质上我是在为ByRef方案的X. VB6不允许修改的变体作为整数。

其他提示

在变暗在一行即Dim i, j as IntegerĴ几个变量变暗为一个整数,但我是变体。您需要显式声明每个变量的类型。我宁愿只包括每行的单个可变

Dim i As Integer, j As Integer

Dim i As Integer
Dim j As Integer

这是东西时,我继承了我学到了程序员的代码

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top