在每个讨论VBScript的网站上,'& '运算符被列为字符串连接运算符。但是,在我最近继承的一些代码中,我看到正在使用' + '运算符,因此我没有看到任何错误。这是一个公认的替代方案吗?

有帮助吗?

解决方案

+运算符过载,而&运营商不是。 & operator只进行字符串连接。在某些圈子中&运算符被用作最佳实践,因为它是明确的,因此不会因为重载而产生任何意外的影响。

其他提示

& 运算符执行字符串连接,即强制将操作数转换为字符串(例如首先在它们上调用 CStr )。如果其中一个表达式是数字, + 会强制添加。例如:

1 & 2

为您提供 12 ,而

1 + 2
"1" + 2
1 + "2"

给你 3

因此,建议使用& 进行字符串连接,因为它可以消除歧义。

当字符串可以解释为数字时,

+ 运算符可能会适得其反。如果你不想要令人讨厌的惊喜,请使用&连接字符串。

在某些情况下,+会抛出异常;例如以下内容:

Sub SimpleObject_FloatPropertyChanging(fvalue, cancel)
   'fvalue is a floating point number
   MsgBox "Received Event: " + fvalue
End Sub

当COM对象源触发事件时,您将收到异常 - 您必须执行以下任一操作:

MsgBox "Received Event: " & fvalue

MsgBox "Received Event: " + CStr(fvalue)

在任何一种情况下最好使用 CStr(value);但使用&对于字符串连接的上述评论几乎总是最佳实践。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top