Long string interpolation lines in C#6
You can break the line into multiple lines, but I wouldn't say the syntax looks nice any more.
You need to use the $@
syntax to use an interpolated verbatim string, and you can place newlines inside the {...}
parameters, like this:
string s = $@"This is all {
10
} going to be one long {
DateTime.Now
} line.";
The string above will not contain any newlines and will actually have content like this:
This is all 10 going to be one long 01.08.2015 23.49.47 line.
(note, norwegian format)
Now, having said that, I would not stop using string.Format
. In my opinion some of these string interpolation expressions looks really good, but more complex ones starts to become very hard to read. Considering that unless you use FormattableString
, the code will be compiled into a call to String.Format
anyway, I would say keep going with String.Format
where it makes sense.
You can combine $
and @
together to get string interpolation and multi-line string literal:
var str = $@"some text { obj1.property }
more text { obj2.property }";
But that will give you a NewLine
character in between, so it might not be what you want.
While OP asked for something else, I expect many people reading this question would like a multiline interpolated $""
that works like @""
. To do that, use $@""
$@"Height: {height}
Width: {width}
Background: {background}"