Programing

문자열 앞의 C # '@'

crosscheck 2020. 10. 18. 08:25
반응형

문자열 앞의 C # '@'


중복 가능성 :
.NET의 문자열 앞의 @는 무엇입니까?

C # 학습서에서 찾았습니다.

DirectoryInfo dir = new DirectoryInfo(key.Key.ToString() + @":\");

그러나이 책은 '@'기호의 의미를 설명하지 않았습니다. MSDN C # 연산자 검색을 시도했지만 거기에 나열되지 않았습니다. 개발자가 '\'를 이스케이프하지 않아도되는지 아니면 이스케이프 시퀀스가 ​​없도록 허용합니까?

이것은 무엇이며 왜 @":\"대신 사용 ":\\"합니까?

도와 주셔서 감사합니다

편집 : 비슷한 질문에 대해서는 아래 설명을 참조하십시오.


이는 문자열을 문자 그대로 해석하는 것을 의미합니다 (즉, @ 접두사를 사용하는 경우 문자열 내의 어떤 문자도 이스케이프 할 수 없음). 사용할 수있는 경우 가독성을 향상시킵니다.

예를 들어 UNC 경로로 작업하는 경우 다음과 같습니다.

@"\\servername\share\folder"

이것보다 더 좋다 :

"\\\\servername\\share\\folder"

또한 예약어를 변수 이름으로 사용할 수 있음을 의미합니다.

class라는 이름의 클래스를 원한다고 가정하면 class는 예약어이므로 대신 클래스 클래스를 호출 할 수 있습니다.

IList<Student> @class = new List<Student>();

문자열 앞에 @를 붙이면 리터럴로 처리해야 함을 나타냅니다. 즉, 이스케이프가 없습니다.

예를 들어 문자열에 경로가 포함 된 경우 일반적으로 다음을 수행합니다.

string path = "c:\\mypath\\to\\myfile.txt";

@를 사용하면 다음을 수행 할 수 있습니다.

string path = @"c:\mypath\to\myfile.txt";

이중 슬래시 (이스케이프)가 없음을 확인하십시오.


참고로, "이스케이프"는 "특수 문자에 대한 표시기로 백 슬래시 사용"을 의미합니다. 예를 들어 다음과 같이 문자열에 줄 끝을 넣을 수 있습니다.

String foo = "Hello\

There";

이것은 무엇이며 왜 ": \"대신 @ ": \"를 사용합니까?

많은 사람들과 오랫동안 쏘였을 때 \그들 모두를 피할 필요가 없기 때문입니다.

참고 URL : https://stackoverflow.com/questions/4879152/c-sharp-before-a-string

반응형