VBScript的+和&的区别是什么?运营商?

时间:2009-07-30 19:43:56

标签: string vbscript string-concatenation

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

4 个答案:

答案 0 :(得分:39)

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

答案 1 :(得分:33)

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

1 & 2

给你12,而

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

给你3

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

答案 2 :(得分:6)

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

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

答案 3 :(得分:1)

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

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);但使用&对于字符串连接的上述评论几乎总是最佳实践。