我正在看VB6代码,我看到如下声明 –
Public Sub CheckXYZ(abc As Integer) If abc <> pqr Then SetVars abc
当我点击SetVars上的定义时,我将采用以下定义 –
Private Sub SetVars(i As Integer)
正如Ryan指出的那样,只有在调用将返回值的函数时才应使用括号.
我想补充的一个缺陷是,如果你实际上在调用Sub时无意中使用了parenteses,VB6将通过值而不是引用传递参数.
当Sub接受多个参数时,这不是风险,因为这是VB6中的非法语法:
SomeFunc (arg1,arg2)
但请考虑这个例子:
Sub AddOne(ByRef i As Integer) i = i + 1 End Sub Sub Command1_Click() Dim i as Integer i = 1 AddOne i 'i will be passed by reference and increased by 1 MsgBox i 'Will print "2" AddOne (i) 'i will be passed by value,so the return value will be lost!! MsgBox i 'Will still print "2"!! End Sub
所以要注意你如何使用括号,一个小的改变可能会产生意想不到的效果.