Обратные косые черты не работают должным образом в моем веб-сервисе - PullRequest
1 голос
/ 30 июня 2011

У меня есть простая строка кода в веб-сервисе:

instance = @"\instanceNameHere";

Тем не менее, вывод всегда одинаков.

\\instanceNameHere

Если я удаляю @ и использую две косые черты, я получаю тот же результат. Я никогда не видел этого раньше, и мой Google-фу подвел меня. Я даже написал простое приложение, и результат был правильным. Так почему же он работает в веб-сервисе?

Ответы [ 3 ]

2 голосов
/ 30 июня 2011

В отладчике для вас исключается косая черта, поэтому вы знаете, что это косая черта, а не escape-последовательность, подобная \t.Если отладчик не сделал этого, как вы можете отличить строку

\t

от строки

<tab>

в отладчике, так как последний представлен в escape-последовательности как \t?Поэтому первый из них отображается как

\\t

, а второй - как

\t

Запишите его в поток или консоль, и вы увидите, что у него только один слеш, или выполнитеinstance.Length и сравните с количеством символов.Вы увидите 17 на консоли, тогда как \\instanceNameHere содержит восемнадцать символов.

1 голос
/ 30 июня 2011

Отладчик отображает строки в виде литералов C #. Таким образом, он отображает их с экранированными символами. Также будет отображаться возврат каретки как \r и табуляция как \t. Это чисто для визуализации - строка буквально не содержит этих escape-символов. Если вы запишете его в журнал, он не будет содержать escape-символов - он будет выглядеть так, как вы ожидаете.

0 голосов
/ 30 июня 2011

UNC-имя любого формата, которое всегда начинается с двух символов обратной косой черты ("\").

Ссылка

Обновление: см. Сообщение @Jason выше!Я не осознавал, что он проверяет отладчик.

...