逐字字符串文字中的新行

A. *_*ria 7 c# verbatim-string

我有一个字符串如下:

string example = @"string str = ""forty-two"";
char pad = '*';
Run Code Online (Sandbox Code Playgroud)

输出是

string str = "forty-two"; char pad = '*';
Run Code Online (Sandbox Code Playgroud)

在一条线上.我需要输出作为follwos

string str = "forty-two"; 
char pad = '*';
Run Code Online (Sandbox Code Playgroud)

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

w.b*_*w.b 8

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

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

Console.WriteLine(example); // string str = "forty-two";
                            // char pad = '*';
Run Code Online (Sandbox Code Playgroud)

来自msdn:

诸如@"c:\ Foo"之类的字符串文字称为逐字字符串文字.它基本上意味着"在达到下一个引号字符之前不要对字符应用任何解释".因此,逐字字符串文字可以包含反斜杠(没有它们被加倍)甚至行分隔符.要在逐字文字中得到双引号("),你需要加倍它,例如@"我的名字是""Jon"""代表字符串我的名字是"Jon".包含行分隔符的逐字字符串文字也会在行的开头包含空白区域,所以我倾向于在白色空间很重要的情况下使用它们.虽然它们在源代码中包含XML或SQL非常方便,但另一个典型用途(不需要行分隔符)用于指定文件系统路径.

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

[作者:Jon Skeet]