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.)



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow