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