char (Referência de C#)

A palavra-chave de tipo char é um alias para o tipo de estrutura System.Char em .NET que representa um caractere Unicode UTF-16.

Tipo Intervalo Tamanho Tipo .NET
char U+0000 a U+FFFF 16 bits System.Char

O valor padrão do tipo char é \0, ou seja, U+0000.

O tipo char dá suporte a operadores de comparação, igualdade, incremento e decremento. Além disso, para operandos char, operadores lógicos aritméticos e de bits executam uma operação nos códigos de caractere correspondentes e produzem o resultado do tipo int.

O tipo de cadeia de caracteres representa o texto como uma sequência de valores char.

Literais

Você pode especificar um valor char com:

  • um literal de caractere.
  • uma sequência de escape Unicode, que é \u seguida pela representação hexadecimal de quatro símbolos de um código de caractere.
  • uma sequência de escape hexadecimal, que é \x seguida pela representação hexadecimal de um código de caractere.
var chars = new[]
{
    'j',
    '\u006A',
    '\x006A',
    (char)106,
};
Console.WriteLine(string.Join(" ", chars));  // output: j j j j

Como mostra o exemplo anterior, você também pode converter o valor de um código de caractere no valor correspondente char.

Observação

No caso de uma sequência de escape Unicode, você deve especificar todos os quatro dígitos hexadecimal. Ou seja, \u006A é uma sequência de escape válida, enquanto \u06A e \u6A não são válidas.

No caso de uma sequência de escape hexadecimal, você pode omitir os zeros à esquerda. Ou seja, as sequências de escape \x006A, \x06A e \x6A são válidas e correspondem ao mesmo caractere.

Conversões

O tipo char é implicitamente conversível para os seguintes tipos integrais: ushort, int, uint, long e ulong. Ele também é implicitamente conversível para os tipos numéricos de ponto flutuante internos: float, double e decimal. É explicitamente conversível para os tipos integrais sbyte, byte e short.

Não há conversões implícitas de outros tipos para o tipo char. No entanto, qualquer tipo numérico de integral ou de ponto flutuante é explicitamente conversível para char.

Especificação da linguagem C#

Para saber mais, confira a seção Tipos integrais na Especificação da linguagem C#.

Confira também