C# Language
문자열 이스케이프 시퀀스
수색…
통사론
- \ '- 작은 따옴표 (0x0027)
- \ "- 큰 따옴표 (0x0022)
- \\ - 백 슬래시 (0x005C)
- \ 0 - null (0x0000)
- \ a - 경고 (0x0007)
- \ b - 백 스페이스 (0x0008)
- \ f - 양식 피드 (0x000C)
- \ n - 새 줄 (0x000A)
- \ r - 캐리지 리턴 (0x000D)
- \ t - 가로 탭 (0x0009)
- \ v - 세로 탭 (0x000B)
- \ u0000 - \ uFFFF - 유니 코드 문자
- \ x0 - \ xFFFF - 유니 코드 문자 (가변 길이 코드)
- \ U00000000 - \ U0010FFFF - 유니 코드 문자 (서로 게이트 생성 용)
비고
문자열 이스케이프 시퀀스는 컴파일 타임에 해당 문자로 변환됩니다. 역 슬래시를 포함하는 일반적인 문자열은 변형 되지 않습니다 .
예를 들어 아래의 notEscaped
및 notEscaped2
문자열은 개행 문자로 변환되지 않지만 두 개의 다른 문자 ( '\'
및 'n'
)로 유지됩니다.
string escaped = "\n";
string notEscaped = "\\" + "n";
string notEscaped2 = "\\n";
Console.WriteLine(escaped.Length); // 1
Console.WriteLine(notEscaped.Length); // 2
Console.WriteLine(notEscaped2.Length); // 2
유니 코드 문자 이스케이프 시퀀스
string sqrt = "\u221A"; // √
string emoji = "\U0001F601"; // 😁
string text = "\u0022Hello World\u0022"; // "Hello World"
string variableWidth = "\x22Hello World\x22"; // "Hello World"
문자 리터럴의 특수 기호 이스케이프
아포스트로피
char apostrophe = '\'';
백 슬래시
char oneBackslash = '\\';
문자열 리터럴의 특수 기호 이스케이프
백 슬래시
// The filename will be c:\myfile.txt in both cases
string filename = "c:\\myfile.txt";
string filename = @"c:\myfile.txt";
두 번째 예제는 백 슬래시를 이스케이프 문자로 처리하지 않는 축 어적 문자열 리터럴을 사용합니다.
인용 부호
string text = "\"Hello World!\", said the quick brown fox.";
string verbatimText = @"""Hello World!"", said the quick brown fox.";
두 변수 모두 동일한 텍스트를 포함합니다.
"안녕하세요!"라고 빠른 갈색 여우가 말했다.
뉴 라인
축 어적 문자열 리터럴은 개행을 포함 할 수 있습니다.
string text = "Hello\r\nWorld!";
string verbatimText = @"Hello
World!";
두 변수 모두 동일한 텍스트를 포함합니다.
알 수없는 이스케이프 시퀀스가 컴파일 타임 오류를 생성 함
다음 예제는 컴파일되지 않습니다.
string s = "\c";
char c = '\c';
대신 컴파일 타임에 Unrecognized escape sequence
오류가 발생합니다.
식별자에서 이스케이프 시퀀스 사용
이스케이프 시퀀스는 string
및 char
리터럴로 제한되지 않습니다.
제 3 자 메소드를 재정의해야한다고 가정 해보십시오.
protected abstract IEnumerable<Texte> ObtenirŒuvres();
C # 소스 파일에 사용하는 문자 인코딩에서 문자 Œ
사용할 수 없다고 가정합니다. 운이 좋다면 \u####
또는 \U########
형식의 이스케이프를 코드의 식별자 에 사용할 수 있습니다. 따라서 다음을 작성하는 것이 합법적입니다.
protected override IEnumerable<Texte> Obtenir\u0152uvres()
{
// ...
}
C # 컴파일러는 Œ
및 \u0152
가 동일한 문자 \u0152
됩니다.
(그러나 UTF-8 또는 모든 문자를 처리 할 수있는 유사한 인코딩으로 전환하는 것이 좋습니다.)
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow