35

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

4

4 回答 4

45

&运算符进行字符串连接,即强制将操作数转换为字符串(就像先调用它们一样CStr)。+反过来,如果表达式之一是数字,则强制加法。例如:

1 & 2

给你12,而

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

给你3

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

于 2009-07-30T20:30:35.410 回答
43

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

于 2009-07-30T19:46:52.673 回答
7

+当字符串可以解释为数字时,运算符可能会适得其反。如果您不想要令人讨厌的惊喜,请使用 & 连接字符串。

于 2009-07-30T19:46:51.160 回答
2

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

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); 但是根据上述注释使用 & 进行字符串连接几乎总是最佳实践。

于 2014-02-08T17:34:12.613 回答