2011-04-29 2 views
1

가능한 중복 : "\ 테마 \ 기본 \ layout.png"나는 같은 문자열을 사용할 때
How to use “\” in a string without making it an escape sequence - C#?C#은 ""를 이스케이프하지 않습니까?

이 왜 나에게 C#에서 오류를주고있다? "d"와 "l"위치에 있습니까? 인식 할 수없는 이탈 시퀀스가 ​​있습니다. 그리고 어떻게하면 "\"을 사용하면 오류가 발생하는 것을 막을 수 있습니까?

Thans는

+0

문자열 앞에 @를 넣으시겠습니까? @ "\ themes \ ..."와 비슷합니다. – sventevit

+0

\\ 사용 - Java에서 작동합니다. –

+0

아직 읽었습니까? http://msdn.microsoft.com/en-us/library/362314fe.aspx 도움이 될까요? –

답변

8

당신은 추가 \으로 탈출해야합니다

string value = @"\themes\default\layout.png"; 

모든 \ 두 배에서 당신을 방지 할 수 있습니다 :

string value = "\\themes\\default\\layout.png"; 

또는이 @ 기호를 사용합니다.

아니면 Path.Combine 방법을 사용할 수 있습니다 당신이 (당신이 보이는 무슨이다) 경로를 처리하는 경우 : 백 슬래시는 escape character로 처리됩니다

string value = Path.Combine(@"\", "themes", "default", "layout.jpg"); 
+2

예, 이것이 원하는 것입니다. @DarinDimitrov가 제공하는 두 번째 예제는 Verbatim String Literal이라고하며, 인용 이스케이프 시퀀스를 제외한 모든 이스케이프 시퀀스를 무시합니다. C# 문자열 리터럴에 대한 자세한 내용은 다음을 참조하십시오. http://msdn.microsoft.com/ko-kr/library/aa691090(v=vs.71).aspx –

+1

"할 수 있음"이 아니어야하지만 "해야 함" 마지막 문장에서. 'Path.Combine'은 경로 생성과 관련된 모든 문제를 사용자가 작성한 코드보다 더 잘 해결하고 개발자에게 큰 두통을 안겨줍니다. – Femaref

0

합니다.

"\\themes\\default\\layout.png" 

또는 리터럴 그대로 문자열을 사용하여 완전히 탈출하지 않도록 : 어느 쪽과 같이 문자열에 백 슬래시 itslef 탈출 당신 '에게 t을'탈출 백 슬래시를 사용하여 '하고

@"\themes\default\layout.png" 
1

을 디'. 당신이 실제 백 슬래시를 탈출하고 싶다면 그렇게해야합니다

"\\themes\\default\\layout.png" 
1

"일반"문자열 리터럴 문자열에 빠르게 특수 문자를 삽입 할 이스케이프 시퀀스에 사용되는 특수 문자로 \ 문자를 치료 - \n에 대한 예를 들어, 줄 바꿈 문자를 삽입하는 데 사용되는 경우 \"은 문자열을 종료하지 않고 " 문자를 삽입하는 데 사용됩니다.

"일반"문자열에 백 슬래시를 삽입하려면 해당 에스 케이프 시퀀스를 삽입해야합니다. 이는 놀랍지 않게도 \\입니다. 당신은 다음의 경우에 작성합니다 컴파일러는 그것을 다음에 몇 백 슬래시 문자를 해석하려고하기 때문에, 당신이 가지고있는 것과 같은 이상한 결과 나 오류가 발생합니다 백 슬래시를 탈출 실패

"\\themes\\default\\layout.png" 

이스케이프 시퀀스; 그러한 시퀀스가 ​​정의되면 원하지 않는 문자가 나타납니다 (예 : \t의 첫 번째 문자는 탭 문자로 이스케이프됩니다). 그렇지 않으면 (예 : \l) 정의되지 않은 이스케이프 시퀀스에 대한 오류가 표시됩니다.

또 다른 옵션으로, 문자를 이스케이프 할 필요가없는 경우, "축 어적"문자열 리터럴을 사용하는 것입니다. 문자열 앞에 @ 문자를 접두어로 붙이면 이스케이프 시퀀스가 ​​비활성화되고 문자열 당신은 컴파일러에 의해 축 어적으로 취해질 것입니다.이 규칙의 유일한 예외는 "인용 이스케이프 시퀀스"를 통해 축 어적 문자열 안에 삽입 할 수있는 따옴표입니다 (즉, ""). 귀하의 경우에 당신은 작성합니다

@"\themes\default\layout.png" 

을 일반에 대한 자세한 정보를 위해 그대로 문자열 리터럴이 their documentation를 보라 대.

관련 문제