char (référence C#)

Le mot clé de type char est un alias du type de structure .NET System.Char qui représente un caractère Unicode UTF-16.

Type Plage Taille Type .NET
char U+0000 à U+FFFF 16 bits System.Char

La valeur par défaut du type char est \0, autrement dit, U+0000.

Le type char prend en charge les opérateurs de comparaison, d’égalité, d’incrémentationet de décrémentation. En outre, pour les opérandes char, les opérateurs arithmétiques et logiques au niveau du bit effectuent une opération sur les codes des caractères correspondants et produisent le résultat du type int.

Le type string représente le texte sous forme de séquence de valeurs char.

Littéraux

Vous pouvez spécifier une valeur char avec :

  • un littéral de caractère.
  • une séquence d’échappement Unicode, qui est \u suivi de la représentation hexadécimale à quatre symboles d’un code de caractère.
  • une séquence d’échappement hexadécimale, qui est \x suivi de la représentation hexadécimale d’un code de caractère.
var chars = new[]
{
    'j',
    '\u006A',
    '\x006A',
    (char)106,
};
Console.WriteLine(string.Join(" ", chars));  // output: j j j j

Comme l’illustre l’exemple précédent, vous pouvez également convertir la valeur d’un code de caractère en valeur char correspondante.

Notes

Dans le cas d’une séquence d’échappement Unicode, vous devez spécifier les quatre chiffres hexadécimaux. Autrement dit, \u006A est une séquence d’échappement valide, tandis que \u06A et \u6A ne le sont pas.

Dans le cas d’une séquence d’échappement hexadécimale, vous pouvez omettre les zéros non significatifs. Autrement dit, les séquences d’échappement \x006A, \x06A et \x6A sont valides et correspondent au même caractère.

Conversions

Le type char est implicitement convertible en types intégraux suivants : ushort, int, uint, long et ulong. Il est également implicitement convertible en types numériques à virgule flottante intégrés : float, double et decimal. Il est explicitement convertible en types intégraux sbyte, byte et short.

Vous ne pouvez pas convertir implicitement d’autres types en type char. En revanche, tout type numérique intégral ou à virgule flottante est explicitement convertible en char.

spécification du langage C#

Pour plus d’informations, consultez la section Types intégraux de la Spécification du langage C#.

Voir aussi