14

次のような文字列があります。

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

出力は次のように 1 行で表示されます。

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

次のような出力が必要です。

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

この逐語的な文字列リテラルの「char pad」の前に改行を挿入するにはどうすればよいですか

4

1 に答える 1

13

逐語的な文字列リテラルでは、2 つの二重引用符を除いて、すべてのエスケープ文字が逐語的に解釈されるため、2 行の文字列が必要な場合は、2 行で手動で記述する必要があります。

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

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

msdnから:

@"c:\Foo" のような文字列リテラルは逐語的文字列リテラルと呼ばれます。基本的には、「次の引用文字に到達するまで、文字に解釈を適用しない」ことを意味します。そのため、逐語的な文字列リテラルには、バックスラッシュ (2 重にせずに) や行区切り文字を含めることができます。逐語リテラル内で二重引用符 (") を取得するには、それを 2 重にする必要があります。たとえば、@"My name is ""Jon""" は文字列 My name is "Jon" を表します。 行区切りを含む逐語的文字列リテラル行頭の空白も含まれるので、空白が重要な場合には使用しない傾向がありますが、ソース コードに XML や SQL を含める場合には非常に便利です。 (それはしません'

文字列自体にはまったく影響しないことに注意してください。逐語的な文字列リテラルとして指定された文字列は、適切なエスケープを行った通常の文字列リテラルとして指定された文字列とまったく同じです。デバッガーは、文字列を逐語的な文字列リテラルとして表示することを選択する場合があります。これは、エスケープを心配せずに文字列の内容を簡単に表示できるようにするためです。

[著者: ジョン・スキート]

于 2015-06-28T07:09:11.137 に答える