我需要打印
a
"b"
c
使用 vebatim 字符串,我在这里提出了另一个关于多行代码模板的问题。
我尝试使用逐字字符串如下:
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}"
也不起作用。
怎么了?
试试这个( " 代替 " 转义)
string templateString = @"
{0}
""{1}""
{2}
";
来自 C# 规范:http://msdn.microsoft.com/en-us/library/Aa691090
引用转义序列: ""
在逐字字符串文本中,""
用于双引号字符。
string line = @"
{0}
""{1}""
{2}";
C# 中使用带有 @"
的多行字符串文本时,双引号的正确转义序列变为 ""
而不是 "
。
string templateString = @"
{0}
""{1}""
{2}
";
在逐字字符串中,使用 ""
表示结果中的"
。
在@"
字符串中,嵌入的双引号被转义为 ""
,而不是 "
。将代码更改为
string templateString = @"
{0}
""{1}""
{2}
";
你的问题应该消失了。
string templateString = @"
{0}
""{1}""
{2}
";
编辑:更新以在使用逐字显示正确的语法。
使用"双双"引号在输出中生成单个双引号。这与旧版 VB6 处理字符串的方式相同。
@" ""something"" is here";
包含一个字符串,该字符串的引号括在某物周围。