char (referencia de C#)

La palabra clave de tipo char es un alias para el tipo de estructura de .NET System.Char que representa un carácter Unicode UTF-16.

Tipo Intervalo Tamaño Tipo de .NET
char U+0000 a U+FFFF 16 bits System.Char

El valor predeterminado del tipo char es \0, es decir, U+0000.

El tipo char admite operadores de comparación, igualdad, incremento y decremento. Además, en el caso de los operandos char, los operadores aritméticos y lógicos bit a bit realizan una operación en los códigos de caracteres correspondientes y producen el resultado del tipo int.

El tipo string representa el texto como una secuencia de valores char.

Literales

Puede especificar un valor de char con:

  • un literal de carácter.
  • una secuencia de escape Unicode, que es \u seguido de la representación hexadecimal de cuatro símbolos de un código de carácter.
  • una secuencia de escape hexadecimal, que es \x seguido de la representación hexadecimal de un código de carácter.
var chars = new[]
{
    'j',
    '\u006A',
    '\x006A',
    (char)106,
};
Console.WriteLine(string.Join(" ", chars));  // output: j j j j

Como se muestra en el ejemplo anterior, también puede convertir el valor de un código de carácter en el valor de char correspondiente.

Nota

En el caso de una secuencia de escape Unicode, debe especificar los cuatro dígitos hexadecimales. Es decir, \u006A es una secuencia de escape válida, mientras que \u06A y \u6A no son válidas.

En el caso de una secuencia de escape hexadecimal, puede omitir los ceros a la izquierda. Es decir, las secuencias de escape \x006A, \x06Ay \x6A son válidas y se corresponden con el mismo carácter.

Conversiones

El tipo char se puede convertir implícitamente en los tipos enteros siguientes: ushort, int, uint, long y ulong. También se puede convertir implícitamente en los tipos numéricos de punto flotante integrados: float, double y decimal. Se puede convertir explícitamente en los tipos enteros sbyte, byte y short.

No hay ninguna conversión implícita de otros tipos al tipo char. Sin embargo, cualquier tipo numérico entero o de punto flotante es implícitamente convertible a char.

Especificación del lenguaje C#

Para obtener más información, consulte la sección Tipos enteros de Especificación del lenguaje C#.

Vea también