逐字字符串文字中的新行

时间:2015-06-28 06:59:03

标签: c# verbatim-string

我有一个字符串如下:

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

输出

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

在一行中。我需要输出为follwos

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

如何在“填充垫”之前插入换行符'在这个逐字字符串文字

1 个答案:

答案 0 :(得分:7)

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

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

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

来自msdn

  

字符串文字,例如@" c:\ Foo"被称为逐字字符串   文字。它基本上意味着,不会对任何解释作出任何解释   字符到达下一个引号字符"。所以,一字不差   字符串文字可以包含反斜杠(没有它们被加倍)   甚至行分隔符。在逐字中获得双引号(")   文字,你需要加倍,例如@"我的名字是"" Jon"""   表示字符串我的名字是" Jon"。逐字字符串文字   包含行分隔符也将在开头包含空格   这条线,所以我倾向于在白色空间的情况下不使用它们   事项。它们在您的源代码中包含XML或SQL非常方便   代码,和另一个典型的用途(它不需要行   separator)用于指定文件系统路径。

     

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

     

[作者:Jon Skeet]