C# Language
String Escape Sequences
Zoeken…
Syntaxis
- \ '- enkele quote (0x0027)
- \ "- dubbele aanhalingstekens (0x0022)
- \\ - backslash (0x005C)
- \ 0 - null (0x0000)
- \ a - alert (0x0007)
- \ b - backspace (0x0008)
- \ f - formulierfeed (0x000C)
- \ n - nieuwe regel (0x000A)
- \ retour - koets retour (0x000D)
- \ t - horizontale tab (0x0009)
- \ v - verticaal tabblad (0x000B)
- \ u0000 - \ uFFFF - Unicode-teken
- \ x0 - \ xFFFF - Unicode-teken (code met variabele lengte)
- \ U00000000 - \ U0010FFFF - Unicode-teken (voor het genereren van surrogaten)
Opmerkingen
String-escape-reeksen worden tijdens het compileren omgezet in het overeenkomstige karakter. Gewone tekenreeksen die achterwaartse schuine strepen bevatten, worden niet getransformeerd.
De tekenreeksen notEscaped
en notEscaped2
hieronder worden bijvoorbeeld niet omgezet in een notEscaped2
, maar blijven als twee verschillende tekens ( '\'
en '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-teken escape-reeksen
string sqrt = "\u221A"; // √
string emoji = "\U0001F601"; // 😁
string text = "\u0022Hello World\u0022"; // "Hello World"
string variableWidth = "\x22Hello World\x22"; // "Hello World"
Ontsnappen aan speciale symbolen in letterlijke tekens
apostrophes
char apostrophe = '\'';
backslash
char oneBackslash = '\\';
Ontsnappen aan speciale symbolen in letterlijke tekenreeksen
backslash
// The filename will be c:\myfile.txt in both cases
string filename = "c:\\myfile.txt";
string filename = @"c:\myfile.txt";
Het tweede voorbeeld gebruikt een letterlijke string letterlijk , die de backslash niet als een escape-teken behandelt.
Citaten
string text = "\"Hello World!\", said the quick brown fox.";
string verbatimText = @"""Hello World!"", said the quick brown fox.";
Beide variabelen bevatten dezelfde tekst.
"Hallo wereld!", Zei de snelle bruine vos.
newlines
Letterlijke letterlijke letterwoorden kunnen nieuwe regels bevatten:
string text = "Hello\r\nWorld!";
string verbatimText = @"Hello
World!";
Beide variabelen bevatten dezelfde tekst.
Niet-herkende escape-reeksen produceren compilatietijdfouten
De volgende voorbeelden zullen niet compileren:
string s = "\c";
char c = '\c';
In plaats daarvan produceren ze de fout Unrecognized escape sequence
tijdens het compileren.
Escape-reeksen gebruiken in ID's
Escape sequenties zijn niet beperkt tot string
en char
letterlijke.
Stel dat u een methode van derden moet overschrijven:
protected abstract IEnumerable<Texte> ObtenirŒuvres();
en stel dat het teken Œ
niet beschikbaar is in de tekencodering die u voor uw C # -bronbestanden gebruikt. Je hebt geluk, het is toegestaan om escapes van het type \u####
of \U########
in identificatiegegevens in de code te gebruiken. Het is dus legaal om te schrijven:
protected override IEnumerable<Texte> Obtenir\u0152uvres()
{
// ...
}
en de C # compiler weet dat Œ
en \u0152
hetzelfde karakter hebben.
(Het kan echter een goed idee zijn om over te schakelen naar UTF-8 of een vergelijkbare codering die alle tekens aankan.)