Ricerca…


Sintassi

  • \ '- virgoletta singola (0x0027)
  • \ "- virgolette doppie (0x0022)
  • \\ - backslash (0x005C)
  • \ 0 - null (0x0000)
  • \ a - alert (0x0007)
  • \ b - backspace (0x0008)
  • \ f - form feed (0x000C)
  • \ n - nuova riga (0x000A)
  • \ r - ritorno a capo (0x000D)
  • \ t - scheda orizzontale (0x0009)
  • \ v - scheda verticale (0x000B)
  • \ u0000 - \ uFFFF - Carattere Unicode
  • \ x0 - \ xFFFF - Carattere Unicode (codice con lunghezza variabile)
  • \ U00000000 - \ U0010FFFF - Carattere Unicode (per la generazione di surrogati)

Osservazioni

Le sequenze di escape di stringhe vengono trasformate nel carattere corrispondente in fase di compilazione . Le stringhe ordinarie che contengono stringhe all'indietro non vengono trasformate.

Ad esempio, le stringhe notEscaped e notEscaped2 seguito non vengono trasformate in un carattere di nuova riga, ma resteranno come due caratteri diversi ( '\' e '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

Sequenze di escape dei caratteri Unicode

string sqrt = "\u221A";      // √
string emoji = "\U0001F601"; // 😁
string text = "\u0022Hello World\u0022"; // "Hello World"
string variableWidth = "\x22Hello World\x22"; // "Hello World"

Scappare simboli speciali in caratteri letterali

Apostrophes

char apostrophe = '\'';

Barra rovesciata

char oneBackslash = '\\';

Scappare simboli speciali in stringhe letterali

Barra rovesciata

// The filename will be c:\myfile.txt in both cases
string filename = "c:\\myfile.txt";
string filename = @"c:\myfile.txt";

Il secondo esempio utilizza letteralmente una stringa letterale , che non considera la barra rovesciata come un carattere di escape.

Citazioni

string text = "\"Hello World!\", said the quick brown fox.";
string verbatimText = @"""Hello World!"", said the quick brown fox.";

Entrambe le variabili conterranno lo stesso testo.

"Ciao mondo!", Disse la rapida volpe marrone.

newlines

I valori letterali stringa letterali possono contenere righe nuove:

string text = "Hello\r\nWorld!";
string verbatimText = @"Hello
World!";

Entrambe le variabili conterranno lo stesso testo.

Le sequenze di escape non riconosciute producono errori in fase di compilazione

I seguenti esempi non verranno compilati:

string s = "\c";
char c = '\c';

Invece, produrranno l'errore Unrecognized escape sequence al momento della compilazione.

Utilizzo delle sequenze di escape negli identificatori

Le sequenze di escape non sono limitate a string e char letterali.

Supponi di dover eseguire l'override di un metodo di terze parti:

protected abstract IEnumerable<Texte> ObtenirŒuvres();

e supponiamo che il carattere Œ non sia disponibile nella codifica dei caratteri che usi per i tuoi file sorgente C #. Sei fortunato, è consentito utilizzare gli escape del tipo \u#### o \U######## in identificatori nel codice. Quindi è legale scrivere:

protected override IEnumerable<Texte> Obtenir\u0152uvres()
{
    // ...
}

e il compilatore C # saprà Œ e \u0152 hanno lo stesso carattere.

(Tuttavia, potrebbe essere una buona idea passare a UTF-8 o una codifica simile in grado di gestire tutti i caratteri.)



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow