vb.net – 我应该在VB/VBA中使用Call关键字吗?

我在VB / VBA中调用subs时使用Call关键字。我知道它是可选的,但它是更好的使用它还是离开它?我一直认为这是更明确的,但也许只是噪音。

另外,我在另一个论坛上阅读:使用Call关键字更快,因为它知道它不会返回任何值,所以它不需要设置任何堆栈空间为返回值留出空间。

啊哈。我一直想知道这一点,甚至阅读一个两英寸厚的书VBA基本上说,不要使用它,除非你想使用VBE的查找功能轻松找到大型项目中的调用

但我只是发现另一个用途。

我们知道,可以用冒号字符连接代码行,例如:

Function Test(mode as Boolean) 
    if mode = True then x = x + 1 : Exit Sub
    y = y - 1
End Sub

但是如果你在一行的开头用过程调用来做到这一点,VBE假定你是指一个标签,并删除所有的缩进,将行对齐到左边距(即使程序是按照预期调用的):

Function test()
Function1 : Function2
End Function

使用Call语句允许连接过程调用,同时保持代码缩进:

Function test()
    Call Function1 : Call Function2
End Function

如果在上面的例子中不使用Call语句,VBE将假定“Function1”是一个标签,并在代码窗口中左对齐,即使它不会导致错误

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...