Are there differences between these examples? Which should I use in which case?
var str1 = \"abc\" + dynamicString + dynamicString2;
var str2 = String.Form
As long as you are not deailing with very many (100+) strings or with very large (Length > 10000) strings, the only criterion is readability.
For problems of this size, use the +. That + overload was added to the string class for readability.
Use string.Format() for more complicated compositions and when substitutions or formatting are required.
Use a StringBuilder when combining many pieces (hundreds or more) or very large pieces (length >> 1000). StringBuilder has no readability features, it's just there for performance.