2012-09-13 4 views
0

가능한 중복은 :
What's the @ in front of a string in C#?왜 @로 문자열을 할당합니까?

이것은 내가 오랫동안 의문을 제기하지만 알아낼 귀찮게 적이없는 무언가이다. 타사 라이브러리를 다운로드 할 때 문자열 앞에 @ 기호를 사용하여 문자열 할당을 자주 보았습니다. 나는 단순히

string myString = "Some text"; 

을 할 경우

string myString = @"Some text"; 

는 그러나 지금하고있는 @ 무엇 전혀 차이가없는 것 같다? 그것은이다

+0

죄송합니다. 검색 할 때 보지 못했습니다. –

+1

@ michael.mankus 그럼 "연구"가 얼마나 했습니까? 나는 그것이 의미하는 바를 알지 못하고 몇 초 만에 그것을 발견했을 때 그것을 찾은 것을 기억합니다 ... – MarioDS

+0

모든 공평성에서 저는 구글 검색을했습니다 (https://www.google.com/#hl=en&sclient=psy- ab & q = what + does + the + % 40 + do + in + c % 23) 결과의 첫 페이지에있는 아무 링크도 문제를 해결하지 못합니다. 나는 그것이 충분히 공정한 질문이라고 생각했다. 그러나 downvote의 필요성을 느낀다면 괜찮습니다. 그리고 제가 말씀 드렸듯이, 복제본에 대해 유감입니다. –

답변

7

verbatim string literal 의미하고 당신에게 하지 특정 문자를 탈출해야 할 수 있습니다 :

string foo = @"c:\some\path\filename.exe"; 

대 :

string foo = "c:\\some\\path\\filename.exe"; 
2
string reason = @"this string literal mea\ns something different with an @ in front than without"; 

에서 @없이, 위의 문자열을 것을 "means"라는 단어에서 'n'대신 줄 바꿈 문자가 추가되었습니다. @를 사용하면 "수단"이라는 단어가 보이는 것처럼 보입니다. 이 기능은 특히 파일 경로와 같은 항목에 유용합니다.

string path = @"C:\Users\LookMa\NoDoubleSlashes.txt"; 
+0

그 차이점은 무엇입니까? 그것은 결국 질문입니까? – Servy

+0

+1 자체 문서화 코드만으로 질문에 대답합니다. – John

0

이 경우에는 차이가 없습니다. '@'는 모두 이스케이프 백 슬래시를 생략 할 수 있습니다. '@'를 사용하고 문자열에 큰 따옴표를 포함 시키려면 큰 따옴표를 이중으로 사용해야합니다.

1

이것은 축 어적 문자열 리터럴입니다. 그것은 "C:\\" 대신에 @"C:\"과 같은 일을 할 수 있으며, 정규식과 파일 경로에서 특히 유용합니다. 이는 컴파일러가 구문 분석해서는 안되는 백 슬래시를 사용하기 때문입니다. 자세한 내용은 the documentation을 참조하십시오.

관련 문제