在每个讨论VBScript的网站上,“&
”运算符被列为字符串连接运算符。但是,在我最近继承的一些代码中,我看到正在使用“+
”运算符,因此我没有看到任何错误。这是一个公认的替代方案吗?
答案 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)
;但使用&对于字符串连接的上述评论几乎总是最佳实践。