Нераспознанная escape-последовательность для строки пути, содержащей обратные косые черты



следующий код создает ошибку компилятора о "нераспознанной escape-последовательности" для каждой обратной косой черты:



string foo = "D:ProjectsSomeKindOfPathproblemwuhoo.xml";


Я думаю, мне нужно, чтобы избежать обратной косой черты? Как мне это сделать?

1240   5  

5 ответов:

Вы можете использовать двойную обратную косую черту каждый раз

string foo = "D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";

или используйте символ@

string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";

попробуйте это:

string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";

проблема в том, что в строке a \ является escape-символом. С помощью @ знак вы говорите компилятору игнорировать escape-символы.

вы также можете получить с побега \:

string foo = "D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
var foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";

Если ваша строка является путем к файлу, как в вашем примере, вы также можете использовать пути к файлам в стиле Unix:

string foo = "D:/Projects/Some/Kind/Of/Pathproblem/wuhoo.xml";

но другие ответы имеют более общие решения для экранирования строк в C#.

string foo = "D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";

это будет работать, или предыдущие примеры тоже будут. @ " ..."означает относиться ко всему между кавычками буквально, так что вы можете сделать

@"Hello
world"

для включения литерала строки. Я более старая школа и предпочитаю избегать " \ " с "\\"

Comments

    Ничего не найдено.