【发布时间】:2011-02-04 03:22:33
【问题描述】:
我在 VB/VBA 中调用 subs 时使用 Call 关键字。我知道它是可选的,但是使用它还是关闭它更好?我一直认为它更明确,但也许它只是噪音。
另外,我在另一个论坛上读到:使用Call 关键字更快,因为它知道它不会返回任何值,因此不需要设置任何堆栈空间来为返回腾出空间价值。
【问题讨论】:
-
在某些情况下使用 call 关键字非常有用,例如当您只想使用一个类时。我今天用它来生成随机盐
Call New RNGCryptoServiceProvider().GetBytes(salt)没有Call我必须首先将变量作为RNGCryptoServiceProvider -
这很容易成为我听说过的使用 call 的最佳(如果不是唯一的话)理由。
-
@Pillgram 除了
RNGCryptoServiceProvider继承了RandomNumberGenerator,它实现了IDisposable,所以Call的这种“非常有用”的使用实际上是在分配非托管资源,并让它们悬空,因为@987654330 @ 永远不会被调用。在某些情况下,其后果可能是灾难性的。坏主意,IMO。 -
@yu_ominae 我也打算在这个上 ping 你 ^
-
@MathieuGuindon 这是一个非常好的观点,谢谢!