char (Riferimenti per C#)
La parola chiave di tipo char
è un alias per il tipo di struttura .NET System.Char che rappresenta un carattere UTF-16 Unicode.
Type | Intervallo | Dimensione | Tipo .NET |
---|---|---|---|
char |
U+0000 a U+FFFF | 16 bit | System.Char |
Il valore predefinito del tipo char
è \0
, ovvero U+0000.
Il tipo char
supporta operatori di confronto, uguaglianza, incrementoe decremento. Inoltre, per gli operandi char
, gli operatori logici aritmetici e bit per bit eseguono un'operazione sui codici di carattere corrispondenti e producono il risultato del tipo int
.
Il tipo stringa rappresenta il testo come sequenza di valori char
.
Letterali
È possibile specificare un valore char
con:
- valore letterale carattere.
- una sequenza di escape Unicode, che è
\u
seguita dalla rappresentazione esadecimale a quattro simboli di un codice carattere. - una sequenza di escape esadecimale, che è
\x
seguita dalla rappresentazione esadecimale di un codice carattere.
var chars = new[]
{
'j',
'\u006A',
'\x006A',
(char)106,
};
Console.WriteLine(string.Join(" ", chars)); // output: j j j j
Come illustrato nell'esempio precedente, è anche possibile eseguire il cast del valore di un codice carattere nel valore char
corrispondente.
Nota
Nel caso di una sequenza di escape Unicode, è necessario specificare tutte e quattro le cifre esadecimali. Ovvero, \u006A
è una sequenza di escape valida, mentre \u06A
e \u6A
non sono validi.
Nel caso di una sequenza di escape esadecimale, è possibile omettere gli zeri iniziali. Ovvero, le sequenze di escape \x006A
, \x06A
e \x6A
sono valide e corrispondono allo stesso carattere.
Conversioni
Il tipo char
è convertibile in modo implicito nei tipi integrali seguenti: ushort
, int
, uint
, long
e ulong
. È anche convertibile in modo implicito nei tipi numerici a virgola mobile predefiniti: float
, double
e decimal
. È convertibile in modo esplicito in tipi integrali sbyte
, byte
e short
.
Non è tuttavia disponibile nessuna conversione implicita da altri tipi nel tipo char
. Tuttavia, qualsiasi tipo numerico integrale o a virgola mobile è convertibile in modo esplicito in char
.
Specifiche del linguaggio C#
Per altre informazioni, vedere la sezione Tipi integrali della specifica del linguaggio C#.