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



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow