다음 코드는 각 백 슬래시의 “인식 할 수없는 이스케이프 시퀀스”에 대한 컴파일러 오류를 생성합니다.
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";
답변
이 시도:
string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
문제는 문자열에서 a \
가 이스케이프 문자라는 것입니다. @
부호를 사용하여 컴파일러에게 이스케이프 문자를 무시하도록 지시합니다.
다음을 이스케이프하여 얻을 수도 있습니다 \
.
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"
리터럴 개행을 포함합니다. 나는 더 오래된 학교이고 “\”를 “\\”로 탈출하는 것을 선호합니다.