繁体   English   中英

VBScript 的 + 和 & 运算符有什么区别?

[英]What is the difference between VBScript's + and & operator?

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

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

&运算符进行字符串连接,即,强制将操作数转换为字符串(例如首先对它们进行调用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) ; 但是使用&per above注释进行字符串连接几乎总是最佳实践。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM