C# Language
String Escape-Sequenzen
Suche…
Syntax
- \ '- einfaches Anführungszeichen (0x0027)
- "- doppelte Anführungszeichen (0x0022)
- \\ - Backslash (0x005C)
- \ 0 - null (0x0000)
- \ a - Warnung (0x0007)
- \ b - Rücktaste (0x0008)
- \ f - Formularvorschub (0x000C)
- \ n - neue Zeile (0x000A)
- \ r - Wagenrücklauf (0x000D)
- \ t - horizontale Registerkarte (0x0009)
- \ v - vertikale Registerkarte (0x000B)
- \ u0000 - \ uFFFF - Unicode-Zeichen
- \ x0 - \ xFFFF - Unicode-Zeichen (Code mit variabler Länge)
- \ U00000000 - \ U0010FFFF - Unicode-Zeichen (zum Erzeugen von Ersatzzeichen)
Bemerkungen
String-Escape-Sequenzen werden zur Kompilierzeit in das entsprechende Zeichen umgewandelt. Gewöhnliche Zeichenfolgen, die zufällige umgekehrte Schrägstriche enthalten, werden nicht transformiert.
Beispielsweise werden die Zeichenfolgen notEscaped
und notEscaped2
nicht in ein Zeilenvorschubzeichen umgewandelt, sondern bleiben zwei verschiedene Zeichen ( '\'
und '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
Unicode-Zeichen-Escape-Sequenzen
string sqrt = "\u221A"; // √
string emoji = "\U0001F601"; // 😁
string text = "\u0022Hello World\u0022"; // "Hello World"
string variableWidth = "\x22Hello World\x22"; // "Hello World"
Sonderzeichen in Zeichenliteralen übergehen
Apostrophe
char apostrophe = '\'';
Backslash
char oneBackslash = '\\';
Sonderzeichen in String-Literalen übergehen
Backslash
// The filename will be c:\myfile.txt in both cases
string filename = "c:\\myfile.txt";
string filename = @"c:\myfile.txt";
Das zweite Beispiel verwendet ein wörtliches Stringliteral , das den Backslash nicht als Fluchtsymbol behandelt.
Zitate
string text = "\"Hello World!\", said the quick brown fox.";
string verbatimText = @"""Hello World!"", said the quick brown fox.";
Beide Variablen enthalten den gleichen Text.
"Hallo Welt!", Sagte der schnelle braune Fuchs.
Zeilenumbrüche
Verbatim-String-Literale können Zeilenumbrüche enthalten:
string text = "Hello\r\nWorld!";
string verbatimText = @"Hello
World!";
Beide Variablen enthalten den gleichen Text.
Nicht erkannte Escape-Sequenzen erzeugen Fehler bei der Kompilierung
Die folgenden Beispiele werden nicht kompiliert:
string s = "\c";
char c = '\c';
Stattdessen erzeugen sie zur Kompilierungszeit die Fehler Unrecognized escape sequence
.
Verwenden von Escape-Sequenzen in Bezeichnern
Escape-Sequenzen sind nicht auf string
und char
Literale beschränkt.
Angenommen, Sie müssen eine Drittanbieter-Methode überschreiben:
protected abstract IEnumerable<Texte> ObtenirŒuvres();
Angenommen, das Zeichen Œ
ist in der Zeichencodierung, die Sie für Ihre C # Œ
nicht verfügbar. Sie Glück, ist es erlaubt , entweicht von der Art zu verwenden \u####
oder \U########
in Identifikatoren im Code. Es ist also legal zu schreiben:
protected override IEnumerable<Texte> Obtenir\u0152uvres()
{
// ...
}
und der C # -Compiler weiß, dass Œ
und \u0152
dasselbe Zeichen sind.
(Es empfiehlt sich jedoch, auf UTF-8 oder eine ähnliche Kodierung umzuschalten, die alle Zeichen verarbeiten kann.)