簡體   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