【发布时间】:2010-11-15 14:02:47
【问题描述】:
在每个谈论 VBScript 的网站上,'&' 运算符都被列为字符串连接运算符。但是,在我最近继承的一些代码中,我看到使用了“+”运算符,因此我没有看到任何错误。这是公认的替代方案吗?
【问题讨论】:
标签: string vbscript string-concatenation
在每个谈论 VBScript 的网站上,'&' 运算符都被列为字符串连接运算符。但是,在我最近继承的一些代码中,我看到使用了“+”运算符,因此我没有看到任何错误。这是公认的替代方案吗?
【问题讨论】:
标签: string vbscript string-concatenation
在某些情况下 + 会抛出异常;例如:
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 以上 cmets 进行字符串连接几乎总是最佳实践。
【讨论】:
& 运算符执行字符串连接,即强制将操作数转换为字符串(例如先调用CStr)。如果表达式之一是数字,+ 反过来会强制加法。例如:
1 & 2
给你12,而
1 + 2
"1" + 2
1 + "2"
给你3。
因此,建议使用& 进行字符串连接,因为它可以消除歧义。
【讨论】:
+ 运算符是重载的,而 & 运算符不是。 & 运算符只进行字符串连接。在某些圈子中,& 运算符被用作最佳实践,因为它是明确的,因此不会因重载而产生任何意外影响。
【讨论】:
The + operator is overloaded -- 超载在什么意义上?
+ 运算符在字符串可以被解释为数字时可能会适得其反。如果您不希望出现令人讨厌的意外,请使用 & 来连接字符串。
【讨论】: