На выходе строка получается идентичной, за исключением того, что число слэшев увеличилась вдвое

Здравствуйте, раньше такого не наблюдал!
string sourceFile = @"E:\Documents\Мои документы\GitHub\MyFirstRepository\GZipTest\GZipTest\bin\Debug\1.wkv";
На выходе строка получается идентичной, за исключением того, что число слэшев увеличилась вдвое. Можете объяснить, с чего вдруг?
8 ответов

Garcian, \\ - это один символ слеш, что очевидно из следующего кода
char slash = '\\';


за исключением того, что число слэшев увеличилась вдвое
Как вы определили, что их увеличилось вдвое? В отладчике посмотрели, или где?


Garcian, по умолчанию в строке слеш используется для указания escape-последовательности, например, \n - переход на новую строку. потому для отображения слеша, чтоб его отличить от escape-последовательности используется \\ при создании строк перед ней стоит символ @ - который говорит о том, что в строке отсутствуют escape-последовательности, но в сохраненной в переменной они учитываются, потому один слеш заменяется на два.


Garcian, выше вам уже ответили, трижды, с разными формулировками. От простой до подробной. Выбирайте любую.


Learx, спасибо. Так а как можно передать я не совсем понял?Так как передать переменной путь? Можно пример?


Garcian, что вы хотите сделать?


Garcian, похоже, что отладчик экранирует символы. Сделайте MessageBox.Show(sourceFile) для наглядности и посмотрите сколько там на самом деле слешей.


rRczZZ, вы правы.