たとえば、このコード行がConsole.Writeline(" \|\/ \| /");
プログラムに干渉することは望ましくありません。現時点ではエラー Unrecognized escape sequence but I don't want to use an escape sequence.コンソールに表示されます。これを行う方法はありますか?お読みいただきありがとうございます。
8 に答える
バックスラッシュをエスケープ文字として扱わず、複数行のリテラルも許可する、そのままの文字列リテラルが必要なように思えます。
Console.Writeline(@" \|\/ \| /");
詳細については、 MSDNまたは文字列に関する私の記事の「リテラル」セクションを参照してください。二重引用符については、まだ少し作業が必要になることに注意してください。
Console.Writeline(@" \|/ \| /");
使用する
Console.Writeline(@" \|/ \| /");
この@
文字は、エスケープ シーケンスを処理しないようにコンパイラに指示します。
のように書きますConsole.WriteLine(@" \|/ \| /")
。シンボルは、@
Visual Studio に、文字列を記述どおりに使用するように指示します。
\
または、それぞれをに置き換えます。\\
これは、 を表示するエスケープ シーケンス\
です。
@
と呼ばれるものを使用できますverbatim string literal
Console.Writeline(@" \|/ \| /");
逐語的な文字列リテラルは、@ 文字とそれに続く二重引用符、0 個以上の文字、および終了二重引用符文字で構成されます。簡単な例は @"hello" です。逐語的な文字列リテラルでは、デリミタ間の文字は逐語的に解釈されますが、唯一の例外は引用符エスケープ シーケンスです。特に、単純なエスケープ シーケンス、および 16 進数と Unicode のエスケープ シーケンスは、逐語的な文字列リテラルでは処理されません。
それらのキャラクター自体をコンソールに表示したいだけです。
次に、エスケープ シーケンスまたは逐語的な文字列リテラルを使用する必要があります。
Console.Writeline(@" \|/ \| /");
文字列の前に「@」を付けます
@" \|/ \| /"
あるいは、実際にエスケープ シーケンスを正しく使用 (および理解) することもできます。文字列で使用する\
には、それらをエスケープする必要があります。参照については、 http://msdn.microsoft.com/en-us/library/h21280bw.aspxを参照してください。
したがって、実際のコマンドは次のようになります
// Escaped characters make this show up as "\|/ \| /"
Console.Writeline(" \\|/ \\| /");
しかし、出力は\|/ \| /