4

ここに画像の説明を入力

質問: デバッガーが、逐語的な文字列 @"directagents\aanodide" の値ではなく、"directagents\a\aanodide" を表示するのはなぜですか。

更新 これは ReSharper の癖のようです。再現するには:

  1. 「\a」を含むリテラル文字列を入力します。
  2. リファクタリング「Change to Verbatim Sring」を適用
    • 「\a」は逐語的な文字列では見えなくなります
    • 「\a」は実際にはなくなっていません。

Hand Typed VS を示す即時ウィンドウからのより多くの証拠。コピーペースト。 ここに画像の説明を入力

4

1 に答える 1

4

デバッガーは、コンパイラーのverbatimスタイルを使用して文字列を作成していることを知りません。逐語的ではない最も一般的な表現を使用して文字列を表示するだけです。

逐語的な文字列は、改行を受け入れるだけでなく、エスケープ シーケンスも認識しないため、ベル文字である \a は、1 つのケースでは 2 つの文字になり、逐語的なスタイルを使用しない場合は 1 つの文字になります。

ここで C# 文字列リテラルのリファレンスを参照できます。

于 2011-03-21T18:15:04.750 に答える