I\'ve been using string interpolation and loving it, however I have an issue where I am trying to include a backslash in my output, but am not able to get it to work.
You can do this, using both the $@. The order is important.
var combo = $@"{domain}\{userName}";
$"{domain}\\{user}"
Works fine - escaping works as usual (except when escaping {
). At least on .NET 4.6 and VS 14.0.22823 D14REL.
If it doesn't work for some reason (maybe you're using an older version of the compiler?), you could also try being more explicit:
$"{domain}{@"\"}{user}"
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 https://msdn.microsoft.com/en-us/library/dn961160.aspx.
... All occurrences of double curly braces (“{{“ and “}}”) are converted to a single curly brace.
If I did not missunderstood. The solution is real simple
var domain = "mydomain";
var userName = "myUserName";
var combo = $"{{{domain}}}\\{{{userName}}}";
Console.WriteLine(combo);
I share the birdamongmen answer as well good reference provided there. Hope it is helpfull to you. My 5 cents
Eduardo is correct. You escape curly braces by doubling up. Therefore, if you wanted to output the domain variable as {mydomain} you would need to do:
$"{{{domain}}}";
Furthermore, assuming that the current date is 1 Sept 2016, doing this:
$"The date is {DateTime.Now}";
would output something like "The date is 2016/09/01 3:04:48 PM" depending on your localization. You can also format the date by doing:
$"The date is {DateTime.Now : MMMM dd, yyyy}";
which would output "The date is September 1, 2016". Interpolated strings are much more readable. Good answer Eduardo.
You can use this -
'First, declare the curley braces as chars
Dim LeftBrace As Char = "{"
Dim RightBrace As Char = "}"
'Then in your string, use like this-
Dim myStr As String = $"This is a {LeftBrace}String{RightBrace}"
'Now, the output will be
' This is a {string}code here