繁体   English   中英

逐字字符串文字中的新行

[英]New line in a verbatim string literal

我有一个字符串如下:

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

输出在一行中,如下所示:

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

我需要如下输出:

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

如何在此逐字字符串文字中的“字符垫”之前插入换行符

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

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

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

msdn

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

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

[作者:乔恩·斯基特]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM