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