C# 11.0 introduces raw string literals which allow you to write strings containing newlines and quotes without escaping them.
Interpolated strings can also be prefixed with $""" to indicate that the string is an interpolated raw string literal. Adding additional $ prefix characters increases the number of { and '} characters required to indicate an interpolated expression allowing for unescaped { and } characters in the string.
Code
C#
string friend = """Hello "Friend"
How are you?""";
string personal = $"""Hello {name}!
How are you?""";
string templated = $$"""Use { Hello + {{varName}} }""";C#
string friend = "Hello \"Friend\"\n\tHow are you?";
string personal = $"Hello {name}!\n\tHow are you?";
string templated = $"Use {{ Hello + {varName} }}";Notes
- You can use any number of
"characters to delimit the string, so long as you have at least three - Newlines are now supported in all string interpolation expressions in C# 11
- Type parameters are limited to the same subset that
typeofsupports - namely you can no usedynamic, nullable reference types likestring?or tuple types like(int, int)