【问题标题】:New line in a verbatim string literal逐字字符串文字中的新行
【发布时间】:2015-09-14 19:32:49
【问题描述】:

我有一个字符串如下:

string example = @"string str = ""forty-two"";
char pad = '*';

输出如下:

string str = "forty-two"; char pad = '*';

我需要输出如下:

string str = "forty-two"; 
char pad = '*';

如何在这个逐字字符串文字中的 'char pad' 之前插入换行符

【问题讨论】:

  • 我在您的源代码中缺少"。另外,你到底是如何输出的?在网页上?
  • 是的,例如在标签中
  • HTML 按照标准不关心空格,这可能是您没有看到预期结果的原因。
  • @A.F.M.GolamKibria 您可以在逐字字符串string example = $@"string str = ""forty-two"";{("\n")}char pad = '*';"; 中使用插值,这是code snippet

标签: c# verbatim-string


【解决方案1】:

在逐字字符串文字中,除了两个双引号外,所有转义字符都被逐字解释,所以如果你想要一个两行字符串,你必须手动将它写成两行:

string example = @"string str = ""forty-two"";
char pad = '*';";

Console.WriteLine(example); // string str = "forty-two";
                            // char pad = '*';

来自msdn

诸如@"c:\Foo" 之类的字符串字面量称为逐字字符串 文字。它基本上意味着,“不要将任何解释应用于 字符直到到达下一个引号字符”。所以,逐字 字符串文字可以包含反斜杠(不加倍) 甚至是行分隔符。在逐字中获取双引号 (") 字面意思,您只需将其翻倍,例如@"我的名字是""乔恩""" 代表字符串 My name is "Jon"。逐字字符串文字 包含行分隔符还将在开头包含空格 行的,所以我倾向于在空白的情况下不使用它们 很重要。它们对于在源代码中包含 XML 或 SQL 非常方便 代码,以及另一个典型用途(不需要行 separators) 用于指定文件系统路径。

值得注意的是,它不会以任何方式影响字符串本身: 指定为逐字字符串文字的字符串与 用适当的字符串指定为普通字符串文字的字符串 逃脱。调试器有时会选择将字符串显示为 逐字字符串文字 - 这仅是为了便于查看 字符串的内容而不用担心转义。

[作者:乔恩·斯基特]

【讨论】:

  • 我从 OP 那里得知他们知道这一点,但他们的抱怨是他们将输出放在一行上。
  • 输出在同一行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-18
  • 1970-01-01
  • 2012-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-08
相关资源
最近更新 更多