Putting \" in verbatim string with C# [duplicate]
I need to print
a
"b"
c
with the vebatim string, I posed another question about multiple line code template here.
I tried with verbatim string as follows :
using System;
class DoFile {
static void Main(st开发者_如何学运维ring[] args) {
string templateString = @"
{0}
\\"{1}\\"
{2}
";
Console.WriteLine(templateString, "a", "b", "c");
}
}
But, I got this error.
t.cs(8,11): error CS1525: Unexpected symbol `{'
t.cs(9,0): error CS1010: Newline in constant
t.cs(10,0): error CS1010: Newline in constant
\"{1}\"
doesn't work neither.
What's wrong?
Try this ( "" instead of " to escape )
string templateString = @"
{0}
""{1}""
{2}
";
From C# specification: http://msdn.microsoft.com/en-us/library/Aa691090
quote-escape-sequence: ""
In a verbatim string literal you use ""
for double quote characters.
string line = @"
{0}
""{1}""
{2}";
When using a multi-line string literal in C# with @"
, the correct escape sequence for a double-quote becomes ""
instead of \"
.
string templateString = @"
{0}
""{1}""
{2}
";
In a verbatim string, use ""
for a "
in the result.
In an @"
string, embedded double quotes are escaped as ""
,not \"
. Change your code to
string templateString = @"
{0}
""{1}""
{2}
";
and your problems should go away.
string templateString = @"
{0}
""{1}""
{2}
";
EDIT: Updated to show correct syntax when using Verbatim.
Use a "double double" quote to produce a single double quote in the output. It's the same way old VB6 would process strings.
@" ""something"" is here";
contains a string that has quotes around the something.
精彩评论