Saltar al contenido

Literales, Unicode, y subrayados en Csharp

Las letras en C# no son más que valores fijos. Estos valores son usados por variables o constantes.

Hay muchos tipos de literales:

Literales, Unicode, y subrayados en Csharp
Literales, Unicode, y subrayados en Csharp
  1. Entero
  2. Punto flotante
  3. Carácter
  4. Cuerda
  5. Nulo
  6. Booleana

Literales enteros

Este es un tipo de literal que se refiere a los números enteros. Hay tres subtipos: uno para el decimal , otro para el octal y un tercero para los hexadecimales .

Los números decimales no tienen prefijos.

1int myDecimal =28;

csharp

Los números octales siempre deben comenzar con el prefijo 0 .

1int myOctal =034;

csharp

El número hexadecimal debe comenzar con el prefijo 0X o 0x :

1int myHex =0X1C

csharp

Esta pequeña aplicación muestra cómo se imprimen sus valores.

123456789101112131415161718 usando el Sistema;namespace litrals{classLiterally{staticvoidMain(string[] args){int myDecimal =28;int myOctal =034;int myHex =0X1C; Console.WriteLine($"La variable {nombrede(miDecimal)} tiene valor: {myDecimal}"); Console.WriteLine($"La variable {nombrede(miOctal)} tiene valor: Console.WriteLine($"La variable {nombrede(miHex)} tiene valor: {miHex}"); Console.ReadKey();;}}}

csharp

Tras la ejecución obtenemos la siguiente salida.

123La variable myDecimal tiene valor:28La variable myOctal tiene valor:34La variable myHex tiene valor:28

csharp

Obsérvese cómo la función nameof nos permite referirnos al nombre de la variable en nuestra interpolación de cadenas. Puedes notar que los valores mostrados en los casos de números hexa y octales carecen de los prefijos. Los prefijos le dicen al compilador qué tipo de operaciones se permite que ocurran en esos tipos de números enteros.

Literales de punto flotante

Un literal que tiene una parte entera, un punto decimal y una parte fraccionaria o exponencial se llama literal de punto flotante.

Anotaciones válidas:

123double myFloat =28.3848;double myFloat =28E-5;double myFloat =28f;

csharp

Anotaciones inválidas:

12double myFloat =28E;double myFloat =.e28;

csharp

Por defecto, cada literal de punto flotante es de tipo doble, y no se nos permite asignarlo a flotar.

La siguiente expresión…

1flota miFlota =28.28;

csharp

…nos da una excepción muy habladora.

12El literal de tipo doble no puede ser convertido implícitamente en tipo $0027float$0027; use un sufijo $0027F$0027 para crear un literal de este tipo

bash

Así que, básicamente, si queremos que lo anterior funcione, necesitamos ponerle el sufijo f .

1flota miFlota =28.28f;

csharp

Literales de caracteres

Para los tipos de datos de carácter, tenemos tres opciones para especificar los literales.

  1. Notación de cita única.
1char c =$0027a$0027;

csharp

  1. Notación de Unicode. Trabajar con este tipo requiere que antepongas al código el prefijo u. Este es un buen sitio para los caracteres unicode.
1char c =$0027u0306$0027;

csharp

  1. Secuencias de escape. Normalmente se les antepone el prefijo de “N”.
1char c =$0027
$0027;

csharp

Este tema se tratará con más detalle más adelante en esta guía.

Literales de cuerda

Estos tipos de literales se suelen encerrar entre comillas: “” o @”” .

12string myString ="Bienvenido a!";string myOtherString =@"Bienvenido a las citas escritas!";

csharp

Literales nulos

Un literal nulo es simplemente la palabra clave null , que es una referencia al valor null . No significa nada, o vacío, según la lógica o el contexto de la aplicación.

Por ejemplo, podemos inicializar una cadena con este valor nulo de la siguiente manera:

1 cuerda s =nula;

csharp

En este contexto, esta es una cadena vacía.

Literatura Booleana

Estos son los literales más simples. Sólo pueden tener valores verdaderos. Uno es verdadero o falso y el otro es 0 o 1 . El contexto determina la forma en que se evalúan.

12bool myTrue = verdadero;bool myFalse =falso;

csharp

Mejoras en la sintaxis numérica

La versión 7.0 de C# añadió flexibilidad a los literales numéricos, mejorando la legibilidad y la mantenibilidad del código fuente.

Antes de la versión 7.0 de C# los números largos se veían así:

1int myLongNumber =10000000;

csharp

Fue difícil a primera vista identificar este número. Pero ahora hay separadores:

1int myLongNumber =10_000_000;

csharp

Esto no afecta al funcionamiento interno. Es sólo un azúcar sintáctico para mejorar la legibilidad de los literales binarios y los separadores de dígitos.