How can I use escape characters with string interpolation in C# 6?
I've been using string interpolation and love it. However, I have an issue where I am trying to include a backslash in my output, but I am not able to get it to work.
I want something like this...
var domain = "mydomain";
var userName = "myUserName";
var combo = $"{domain}\{userName}"
I want the output of combo to be:
myDomain\myUserName
I get a syntax error about the \ being an escape character. If I put in \\ then the syntax error is gone, but the output is myDomain\\myUsername.
How can I include escaped characters in an interpolated string?
Solution 1:
Escaping with a backslash(\
) works for all characters except a curly brace.
If you are trying to escape a curly brace ({
or }
), you must use {{
or }}
per $ - string interpolation (C# reference)
... All occurrences of double curly braces (“{{“ and “}}”) are converted to a single curly brace.
Solution 2:
You can do this, using both the $@. The order is important.
var combo = $@"{domain}\{userName}";
The original question mentions specifically C# 6. As commented, C# 8 no longer cares for the order.