1

Webサービスに簡単なコード行があります。

instance = @"\instanceNameHere";

それでも、出力は常に同じです。

\\instanceNameHere

@を削除し、2つのスラッシュを使用すると、同じ結果が得られます。私はこれを前に見たことがなく、私のグーグルフーは私に失敗しました。簡単なアプリも書いたのですが、結果は正しかったです。では、なぜそれがWebサービスで機能しているのでしょうか。

4

3 に答える 3

2

デバッガーでスラッシュをエスケープしているので、それがスラッシュであり、のようなエスケープ シーケンスではないことがわかります\t。デバッガーがこれを行わなかった場合、どのようにして文字列を区別できますか

\t

文字列から

<tab>

後者はエスケープシーケンスで\t?によって表されるため、デバッガーで。したがって、前者は次のように示されます。

\\t

そして後者は

\t

ストリームまたはコンソールに書き込むと、スラッシュが 1 つしかないことがわかります。または、スラッシュを実行しinstance.Lengthて文字数と比較します。17コンソールに表示されます\\instanceNameHereが、18 文字あります。

于 2011-06-30T18:45:22.450 に答える
1

デバッガーは文字列を C# リテラルとして表示します。そのため、文字をエスケープして表示しています。また、キャリッジ リターンは として\r、タブは として表示され\tます。これは純粋に視覚化のためのものです。文字列には、これらのエスケープ文字が文字通り含まれているわけではありません。ログに書き出す場合、エスケープ文字は含まれません。期待どおりに表示されます。

于 2011-06-30T18:44:54.443 に答える
-2

常に 2 つのバックスラッシュ文字 ("\") で始まる任意の形式の UNC 名。

リンク

更新:上記の@Jasonの投稿をご覧ください!彼がデバッガーでチェックインしていることに気づきませんでした。

于 2011-06-30T18:45:43.433 に答える