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 è \xseguita 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, bytee 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#.

Vedi anche