2011-06-30 17 views
1

では正常に動作していない私は、Webサービスのコードのシンプルなラインを持っています。バックスラッシュは自分のWebサービス

\\instanceNameHere 

@を削除して2つのスラッシュを使用すると、同じ結果になります。私は以前これを見たことがなく、私のGoogle-fuは私に失敗しました。私も単純なアプリを書いて、その結果は正しいものでした。それでは、なぜWebサービスで動いているのですか?

+0

「出力」とはどういう意味ですか?おそらくデバッガでこれを表示していますか? –

+0

はい、私はデバッガを使用しています。 –

+0

Webサービスはフォルダディレクトリと同じではありません。フォルダとファイルパスには通常スラッシュが1つあります。あなたは何をしようとしているのですか、ただ2つの理由があるかどうかを判断してください。二重スラッシュを指定する必要があるネットワークドライブを見てください。 – Jethro

答えて

2

デバッガでスラッシュをエスケープしているので、スラッシュであり、\tのようなエスケープシーケンスではありません。デバッガはこれをしなかった場合、後者は\tでエスケープシーケンスで表現されているので、どのようにデバッガ内の文字列

<tab> 

から文字列

\t 

を区別することができますか?そのため

\t 

として

\\t 

と後者のように示されている前者は、ストリームやコンソールにそれを書いて、あなたはそれが唯一のスラッシュを持っていることがわかり、またはinstance.Lengthを行うとと比較します文字の数コンソールに17が表示されますが、\\instanceNameHereには18文字が表示されます。

+0

それはそれだった。私の小さなテストプログラムでは、コンソールに書き出しました。それはデバッガについては決して知らなかった。意味をなさないありがとう! –

1

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

-2

任意の形式のUNC名。常に2つの円記号( "\")で始まります。

Link

更新:上記@Jason記事をご覧ください!私は彼がデバッガをチェックインしていることを知らなかった。

+0

私は彼がUNC名について話しているとは思わない。これは、デバッガが表示しているC#で "/"をエスケープする方法です。 – therealmitchconnors

+0

私は彼がデバッガで探していた彼のコメントを参照してください。しかたがない。 – Jethro

関連する問題