I am wondering what is the \"best practice\" to break long strings in C# source code. Is this string
\"string1\"+
\"string2\"+
\"string3\"
con
Your example will be concatenated at compile time. All inline strings and const string variables are concatenated at compile time.
Something to keep in mind is that including any readonly strings will delay concatting to runtime. string.Empty and Environment.NewLine are both readonly string variables.
Can't you use a StringBuilder
?
There´s any way to do it. My favorete uses a string´s method´s from C#. Sample One:
string s=string.Format("{0} {1} {0}","Hello","By"); result is s="Hello By Hello";
It's done at compile time. That's exactly equivalent to "string1string2string3".
Suppose you have:
string x = "string1string2string3"
string y = "string1" + "string2" + "string3"
The compiler will perform appropriate interning such that x and y refer to the same objects.
EDIT: There's a lot of talk about StringBuilder
in the answers and comments. Many developers seem to believe that string concatenation should always be done with StringBuilder
. That's an overgeneralisation - it's worth understanding why StringBuilder is good in some situations, and not in others.