Следующий код генерирует ошибку компилятора о «нераспознанной escape-последовательности» для каждой обратной косой черты:
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";
Но в других ответах есть более общие решения для экранирования строк в С #.
источник
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
Это будет работать, или предыдущие примеры тоже. @ "..." означает буквально обрабатывать все, что находится между кавычками, так что вы можете
@"Hello world"
Чтобы включить буквальный перевод строки. Я более олдскульный и предпочитаю убегать "\" с "\\"
источник