VBA:& 和 + 的区别

9

以下是两者之间的区别:

string1 + string2

并且

string1 & string2

它们是等效的吗?为什么有两个做同样事情的不同符号?
2个回答

9
只要操作数是字符串,表达式就相同;否则,+可能会根据类型转换将它们相加。 &保证你只会得到字符串连接,并在可能的情况下将操作数转换为字符串。
有一个关于Visual Basic中连接操作的MSDN条目对此进行了解释:

&运算符(Visual Basic)仅针对字符串操作数定义,并且它总是将其操作数扩展为字符串,而不管Option Strict设置如何。建议使用&运算符进行字符串连接,因为它仅针对字符串进行定义,减少了生成意外转换的机会。


3
即使使用字符串,如果其中一个值为null,表达式也不相同。 - Fionnuala
这篇MSDN文章是关于Visual Basic的,但我猜在VBA中同样适用?没有VBA文档页面吗? - Kapé

3
这两个表达式是等价的,但运算符却不同。 + 可以用作算数运算符和字符串连接符,& 只能用于后者。

它们具有不同的行为,请参见 + 操作符& 操作符 - Georg Fritzsche
考虑使用 + 连接空值和字符串。 - Fionnuala

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接