views:

58

answers:

2

What is the difference between:

string1 + string2

and

string1 & string2

Are they equivalent? Why have two different symbols that do the same thing?

+2  A: 

The two expressions are equivalent, but the operators are not. + can be used as an arithmetic operator as well as for string concatenation, & can only be used for the latter.

Georg Fritzsche
I__
Georg Fritzsche
Consider a null value concatenated with a string using +
Remou
+2  A: 

The expressions are the same as long as the operands are strings; if not, + might add them instead depending on type conversions. & guarantees you won't get anything except a string concatenation, and will convert operands to strings if possible to do so.

There's an MSDN entry about Concatenation operations in Visual Basic that explains it:

The & Operator (Visual Basic) is defined only for String operands, and it always widens its operands to String, regardless of the setting of Option Strict. The & operator is recommended for string concatenation because it is defined exclusively for strings and reduces your chances of generating an unintended conversion.

Michael Mrozek
The expressions are not the same even with strings if one of the values is null.
Remou