使用 C# 将 “ 放入逐字字符串中
本文关键字:字符串 使用 | 更新日期: 2023-09-27 17:56:17
我需要打印
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";
包含一个字符串,该字符串的引号括在某物周围。