我需要打印
a
"b"
c
使用vebatim字符串,我提出了另一个关于多行代码模板here的问题。
我尝试使用逐字字符串,如下所示:
using System;
class DoFile {
static void Main(string[] args) {
string templateString = @"
{0}
\\"{1}\\"
{2}
";
Console.WriteLine(templateString, "a", "b", "c");
}
}
但是,我收到了这个错误。
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}\"
也不起作用。
怎么了?
答案 0 :(得分:20)
试试这个(“”而不是“逃避”
string templateString = @"
{0}
""{1}""
{2}
";
来自C#规范:http://msdn.microsoft.com/en-us/library/Aa691090
报价转义序列: “”
答案 1 :(得分:8)
在逐字字符串文字中,您使用""
表示双引号字符。
string line = @"
{0}
""{1}""
{2}";
答案 2 :(得分:4)
在C#中使用@"
的多行字符串文字时,双引号的正确转义序列变为""
而不是\"
。
string templateString = @"
{0}
""{1}""
{2}
";
答案 3 :(得分:1)
在逐字字符串中,对结果中的""
使用"
。
答案 4 :(得分:1)
在@"
字符串中,嵌入式双引号转义为""
,而不是\"
。将您的代码更改为
string templateString = @"
{0}
""{1}""
{2}
";
你的问题应该消失。
答案 5 :(得分:0)
string templateString = @"
{0}
""{1}""
{2}
";
编辑:更新以在使用Verbatim时显示正确的语法。
答案 6 :(得分:0)
使用“double double”引号在输出中生成单个双引号。它与旧VB6处理字符串的方式相同。
@" ""something"" is here";
包含一个字符串,其中包含引号。