Visual Basic 6.0中路过的价值基准差
-
11-09-2019 - |
题
在下面的代码,得到了一个编译时间错误,因为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
这是东西时,我继承了我学到了程序员的代码
不隶属于 StackOverflow