When you use the +=
operator, you are actually calling the string.Concat method, that, as stated in the documentation:
The method concatenates str0 and str1; it does not add any delimiters.
An Empty string is used in place of any null argument.
In fact this code:
string xyz = null;
xyz += xyz;
will be compiled in:
IL_0000: ldnull
IL_0001: stloc.0 // xyz
IL_0002: ldloc.0 // xyz
IL_0003: ldloc.0 // xyz
IL_0004: call System.String.Concat
IL_0009: stloc.0 // xyz