Ampersand vs plus for concatenating strings in VB.NET

dcp picture dcp · Jun 9, 2010 · Viewed 68.6k times · Source

In VB.NET, is there any advantage to using & to concatenate strings instead of +?

For example

Dim x as String = "hello" + " there"

vs.

Dim x as String = "hello" & " there"

Yes, I know for a lot of string concatenations I'd want to use StringBuilder, but this is more of a general question.

Answer

Joel Coehoorn picture Joel Coehoorn · Jun 9, 2010

I've heard good, strong arguments in favor of both operators. Which argument wins the day depends largely on your situation. The one thing I can say is that you should standardize on one or the other. Code that mixes the two is asking for confusion later.

The two arguments I remember right now for favoring &:

  • If you're not using Option Strict and have two numeric strings, it's easy for the compiler to confuse your meaning of of the + operator with, you know, arithmetic addition
  • If you're updating a lot of older vb6-era code it helps not to have to convert the concatenation operators ( and remember: we want consistency).

And for +:

  • If you have a mixed vb/C# shop, it's nice to only have one concatenation operator. It makes it easier to move code between languages and means just that much less of a context switch for programmers when moving back and forth between languages
  • & is almost unique to VB, while + between strings is understood in many languages to mean concatenation, so you gain a little something in readability.