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?
Escape sequences Escaping backslash ( \ ) and quote ( " ) characters works exactly the same in interpolated strings as in non-interpolated strings, for both verbatim and non-verbatim string literals: Console. WriteLine($"Foo is: {foo}. In a non-verbatim string, we need to escape \" and \\ with backslashes.
To identify a string literal as an interpolated string, prepend it with the $ symbol. You can't have any white space between the $ and the " that starts a string literal. The expression that produces a result to be formatted.
\ is a special character within a string used for escaping. "\" does now work because it is escaping the second " . To get a literal \ you need to escape it using \ .
You can use string interpolation by using template literals; replace the quotes with backticks(`)(https://www.computerhope.com/jargon/b/backquot.htm). Hope this helped you on your coding journey! I am not sure why they are teaching this method, but you can just add a space between the quotation marks.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With