Recherche…


Syntaxe

  • \ '- guillemet simple (0x0027)
  • \ "- guillemet double (0x0022)
  • \\ - barre oblique inverse (0x005C)
  • \ 0 - null (0x0000)
  • \ a - alerte (0x0007)
  • \ b - retour arrière (0x0008)
  • \ f - flux de formulaire (0x000C)
  • \ n - nouvelle ligne (0x000A)
  • \ r - retour chariot (0x000D)
  • \ t - tabulation horizontale (0x0009)
  • \ v - onglet vertical (0x000B)
  • \ u0000 - \ uFFFF - Caractère Unicode
  • \ x0 - \ xFFFF - Caractère Unicode (code de longueur variable)
  • \ U00000000 - \ U0010FFFF - Caractère Unicode (pour générer des substituts)

Remarques

Les séquences d'échappement de chaînes sont transformées en caractères correspondants au moment de la compilation . Les chaînes ordinaires qui contiennent des barres obliques ne sont pas transformées.

Par exemple, les chaînes notEscaped et notEscaped2 ci-dessous ne sont pas transformées en un caractère de nouvelle ligne, mais resteront deux caractères différents ( '\' et '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

Séquences d'échappement de caractères Unicode

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

Échapper à des symboles spéciaux dans les littéraux de caractère

Apostrophes

char apostrophe = '\'';

Barre oblique inverse

char oneBackslash = '\\';

Échapper aux symboles spéciaux dans les littéraux de chaîne

Barre oblique inverse

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

Le deuxième exemple utilise une chaîne littérale textuelle , qui ne traite pas la barre oblique inverse comme un caractère d'échappement.

Citations

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

Les deux variables contiendront le même texte.

"Hello World!", Dit le rapide renard brun.

Nouvelles lignes

Les littéraux de chaîne verbatim peuvent contenir des nouvelles lignes:

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

Les deux variables contiendront le même texte.

Les séquences d'échappement non reconnues génèrent des erreurs de compilation

Les exemples suivants ne compileront pas:

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

Au lieu de cela, ils produiront la Unrecognized escape sequence Erreur Unrecognized escape sequence au moment de la compilation.

Utilisation de séquences d'échappement dans les identificateurs

Les séquences d' échappement ne sont pas limités à string et char littéraux.

Supposons que vous deviez remplacer une méthode tierce:

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

et supposons que le caractère Œ ne soit pas disponible dans le codage de caractères que vous utilisez pour vos fichiers source C #. Vous avez de la chance, il est permis d'utiliser des échappements du type \u#### ou \U######## dans les identifiants du code. Il est donc légal d'écrire:

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

et le compilateur C # saura que Œ et \u0152 ont le même caractère.

(Cependant, il peut être judicieux de passer à l’UTF-8 ou à un encodage similaire capable de traiter tous les caractères.)



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow