在VB.NET中调用过程的优缺点是什么?

Red*_*ils 6 vb.net procedure

我想知道使用Call Keyword调用过程和在VB.NET中没有调用的优缺点?

Private Sub ProOne()
     ' Code Are Here
End Sub

Private Sub Calling()
   ProOne()           ' I would like to know pros and cons of this
   Call ProOne()      ' And I would like to know pros and cons of this
End Sub
Run Code Online (Sandbox Code Playgroud)

在此先感谢所有人.

Bin*_*ier 13

没有专业人士,也没有缺点.

Call关键字是旧VB方言的遗留关键字.

在VB.net中它没有任何意义,而且是合成糖.


Mic*_*odd 11

这里:

您通常使用Call语句来调用不返回值的过程.如果过程返回值,则Call语句将丢弃该值.

调用过程时,不需要使用Call语句.但是,它提高了代码的可读性.

因此,从本质上讲,ProOne()和Call ProOne()在语义上是等价的.


Bor*_*ens 7

我发现的一个有趣的用途(R#建议),就是当你需要创建一个实例来调用单个方法然后将其标记为垃圾收集时.
不知道我是否保留它.

例如

Call (new MyType()).MySub()
Run Code Online (Sandbox Code Playgroud)

相当于

dim anInstance = new MyType
anInstance.MySub
Run Code Online (Sandbox Code Playgroud)

  • @BorisCallens无论如何,`Call`是不必要的.你可以写`(new MyType()).MySub()` (2认同)