C# Language
Séquences d'échappement de chaîne
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.)