Está en la página 1de 20

1.

Introducción

Muchas de las aplicaciones que compilaremos en C# exigen trabajar con datos. A


veces, esos datos se van a codificar de forma rígida en la aplicación. Los valores codificados
de forma rígida son valores constantes que no cambian durante la ejecución del programa.
Por ejemplo, puede que necesite imprimir un mensaje para el usuario cuando alguna
operación se realice correctamente. Un mensaje "correcto" posiblemente sería igual cada vez
que se ejecuta la aplicación. Este valor codificado de forma rígida también se denomina
constante o valor literal.

Imagine que quiere mostrar un mensaje con formato para el usuario final que
contenga diferentes tipos de datos. El mensaje incluirá cadenas codificadas de forma rígida,
pero puede combinarse con información que la aplicación recopila del usuario. Para mostrar
un mensaje con formato, debe crear valores codificados de forma rígida y definir variables
que puedan almacenar datos de un tipo determinado, ya sean numéricos, alfanuméricos, etc.

En este módulo crearemos valores literales codificados de forma rígida que contienen
tipos de datos diferentes. Se crean variables que pueden contener determinados tipos de
datos, se establecen esas variables con un valor y luego se recuperan esos valores en código.
Por último, se aprende a simplificar el código al permitir que el compilador asuma parte del
trabajo.

Impresión de valores literales

2. ¿Qué es un valor literal?


Un valor literal es un valor constante que nunca cambia. Anteriormente se ha
mostrado una cadena de literales en la consola de salida. Es decir, el objetivo literalmente era
que esa cadena de caracteres alfanuméricos H, e, l, l, o, etc. se mostrara en la consola de
salida.

El tipo de datos de cadena se usa siempre que se tienen palabras, frases o datos
alfanuméricos para presentación, no cálculo.
3. ¿Qué otros tipos de datos literales se pueden imprimir en la salida?
Ejercicio: Impresión de distintos tipos de datos literales

Hay muchos tipos de datos en C#, Aunque para empezar solo es necesario conocer
unos cinco o seis tipos de datos, ya que cubren la mayoría de los escenarios. Vamos a mostrar
una instancia literal de tipo de datos en la salida.

Nota

Es posible que observe que, al empezar a trabajar en la ventana de código, se colorea


una sintaxis determinada en diferentes colores para indicar palabras clave, operadores, tipos
de datos, etc. Empiece a observar los colores. Puede ayudarle a detectar errores de sintaxis a
medida que escribe caracteres y a comprender el código de forma más eficaz.

4. Uso de literales de caracteres


Si únicamente queremos imprimir un carácter alfanumérico en la pantalla, podemos
crear un literal char; para ello, escribiríamos un carácter alfanumérico entre comillas simples.
char se usa como abreviatura de carácter. En C#, este tipo de datos se denomina oficialmente
"char", pero con frecuencia se conoce como "carácter".

Agregue la siguiente línea de código en el editor de código:

Console.WriteLine('b');

Observe el código que ha escrito.

Observe que la letra b está entre comillas simples 'b'. Las comillas simples crean un
literal de carácter. Recuerde que el uso de comillas dobles crea un tipo de datos string.

Console.WriteLine('Hello World!');
Se obtiene el siguiente error:

(1,19): error CS1012: Too many characters in character literal

Observe las comillas simples que rodean Hello World!. Cuando se usan comillas
simples, el compilador de C# espera un solo carácter. Sin embargo, en este caso, se usó la
sintaxis literal de caracteres, pero en su lugar se proporcionaron 12 caracteres.

Al igual que con el tipo de datos string, usamos char siempre que tengamos un solo
carácter alfanumérico para presentación (no cálculo).

5. Uso de literales enteros


Si queremos mostrar un número entero (sin fracciones) en la consola de salida,
podemos usar literal int. El término int es la abreviatura de entero, que puede que recuerde de
cuando ha estudiado matemáticas. En C#, este tipo de datos se denomina oficialmente "int",
pero se conoce con frecuencia como "entero". Un literal int no requiere otros operadores,
como string o char.

Agregue la siguiente línea de código en el editor de código:

Console.WriteLine(123);

Presione el botón verde Ejecutar para ejecutar el código. Deberíamos ver el resultado
siguiente en la consola de salida:

123

Uso de literales de punto flotante

Un número de punto flotante es uno que contiene decimales,

por ejemplo, 3,14159. C# admite tres tipos de datos para representar números
decimales: float, double y decimal. Cada tipo admite distintos grados de precisión.

Aquí, la precisión refleja el número de


dígitos decimales precisos.
Agregue la siguiente línea de código en el editor de código:

Console.WriteLine(0.25F);

Para crear un literal decimal float, anexe la letra F después del número. En este
contexto, F se denomina sufijo literal. El sufijo literal le indica al compilador que queremos
trabajar con un valor de tipo float. Puede usar f en minúsculas o F en mayúsculas como sufijo
literal de float.

Presione el botón verde Ejecutar para ejecutar el código. Deberíamos ver el resultado
siguiente en la consola de salida:

0.25

Tenga en cuenta que el tipo de datos float es el menos preciso, por lo que es mejor
usar este tipo de datos para los valores fraccionarios fijos y así evitar errores de cálculo
imprevistos.

Console.WriteLine(2.625);

Para crear un literal double, simplemente escriba un número decimal. El compilador


tiene como valor predeterminado un literal double cuando se escribe un número decimal sin
sufijo literal.

Presione el botón verde Ejecutar para ejecutar el código. Deberíamos ver el resultado
siguiente en la ventana de salida:

2.625

Agregue la siguiente línea de código en el editor de código:

Console.WriteLine(12.39816m);

Para crear un literal decimal, anexe la letra m después del número. En este contexto,
m se denomina sufijo literal. El sufijo literal le indica al compilador que queremos trabajar
con un valor de tipo decimal. Puede usar m en minúsculas o M en mayúsculas como sufijo
literal de decimal.
Presione el botón verde Ejecutar para ejecutar el código. Deberíamos ver el resultado
siguiente en la consola de salida:

12.39816

6. Uso de literales booleanos


Si queremos imprimir un valor que represente true o false, podemos usar un literal
bool.

El término bool es la abreviatura de booleano. En C#, se conoce oficialmente como


"bool", pero a menudo los desarrolladores usan el término "booleano".

Agregue las siguientes líneas de código en el editor de código:

Presione el botón verde Ejecutar para ejecutar


el código. Deberíamos ver el resultado
siguiente en la consola de salida:

True False

Los literales bool representan el concepto de verdad y falsedad. Los valores bool se
usan mucho cuando se comienza a agregar lógica de decisión a las aplicaciones. Vamos a
evaluar las expresiones para ver si son verdaderas o falsas.

7. ¿Por qué enfatizar los tipos de datos?


Los tipos de datos desempeñan un papel fundamental en C#. De hecho, el énfasis en
los tipos de datos es una de las características distintivas de C# en comparación con otros
lenguajes como JavaScript. Los diseñadores de C# creían poder ayudar a los desarrolladores a
evitar errores comunes de software mediante la aplicación de tipos de datos. A medida que
obtenga más información sobre C#, verá cómo se desarrolla este concepto.

8. Los tipos de datos definen funcionalidades


Antes hemos mencionado que los valores string y char se usan para "presentación, no
cálculo". Si necesita realizar una operación matemática con valores numéricos, debe usar un
valor int o decimal. Si tenemos datos solo con fines de presentación o manipulación de texto,
debemos usar un tipo de datos string o char.
Imagine que necesita recopilar datos de un usuario, como un número de teléfono o un
código postal. En función del país o la región donde viva, esos datos pueden ser caracteres
numéricos. Pero dado que rara vez realiza cálculos matemáticos con números de teléfono y
códigos postales, es preferible usar un tipo de datos string al trabajar con ellos.

Lo mismo puede decirse de bool. Si necesita trabajar con las palabras "true" y "false"
en la aplicación, debe usar un valor string. Pero si necesita trabajar con el concepto de true o
false al realizar una evaluación, use un valor bool.

Es importante saber que estos valores pueden ser similares a sus equivalentes de
literales de cadena. Es decir, puede pensar que estas instrucciones son iguales:

Sin embargo, solo es similar la salida que se muestra. El


hecho es que los tipos de cosas que puede hacer con el
valor subyacente int o bool son diferentes a los de su
equivalente string.

9. Resumen
string para palabras, frases o cualquier dato alfanumérico para presentación, no
cálculo

char para un solo carácter alfanumérico

int para un número entero

decimal para un número con un componente fraccionado

bool para un valor true/false


10. Declaración de variables
Un literal es literalmente un valor codificado de forma rígida. Los valores codificados
de forma rígida son valores que son constantes e inalterables durante la ejecución del
programa. Sin embargo, la mayoría de las aplicaciones precisan que trabaje con valores de los
que no se sabe mucho de antemano. Es decir, tiene que trabajar con datos que provienen de
usuarios, de archivos o de la red.

Cuando necesite trabajar con datos que no están codificados de forma rígida,
declarará una variable.

10.1. ¿Qué es una variable?


Una variable es un contenedor para almacenar un tipo de valor. Las variables son
importantes porque sus valores pueden cambiar o variar durante la ejecución de un programa.
Las variables se pueden asignar, leer y cambiar. Las variables se usan para almacenar valores
que se pretende usar en el código.

Un nombre de variable es una etiqueta fácil de usar que el compilador asigna a una
dirección de memoria. Cuando quiera almacenar o cambiar un valor de esa dirección de
memoria, o siempre que quiera recuperar el valor almacenado, simplemente use el nombre de
variable que ha creado.

10.2. Declaración de una variable


Para crear una nueva variable, primero debe declarar el tipo de datos de la variable y
luego asignarle un nombre.

En este caso, creará una nueva variable de tipo string denominada firstName. A partir
de ahora, esta variable solo puede contener valores de cadena.

Puede elegir cualquier nombre siempre que cumpla algunas reglas de sintaxis de C#
para denominar variables.
11. Reglas y convenciones de nombre de variable

Un desarrollador de software alguna vez dijo la famosa frase "La parte más difícil del
desarrollo de software es asignar nombres a las cosas". El nombre de una variable no solo
tiene que seguir ciertas reglas de sintaxis, sino que también se debe usar para que el código
sea más legible y comprensible. Eso es mucho pedir a una línea de código.

11.1. Estas son algunas consideraciones importantes sobre los nombres de

variables:

 Los nombres de variables pueden contener caracteres alfanuméricos y el


carácter de subrayado. No se permiten caracteres especiales, como el símbolo
# (también conocido como símbolo de almohadilla) o el símbolo del dólar $.

 Los nombres de variables deben comenzar por una letra alfabética o un


carácter de subrayado, no por un número.

 Los nombres de variable distinguen mayúsculas de minúsculas, lo que


significa que string Value; y string value; son dos variables diferentes.

 Los nombres de variable no deben ser una palabra clave de C#. Por ejemplo,
no se pueden usar las siguientes declaraciones de variable: decimal decimal; ni
string string;.

 Hay convenciones de creación de código que ayudan a que las variables sean
legibles y fáciles de identificar. A medida que desarrolla aplicaciones más
grandes, estas convenciones de creación de código pueden ayudarle a realizar
un seguimiento de las variables entre otro texto.

11.2. Estas son algunas convenciones de creación de código de las variables:

Los nombres de variable deben usar camel case, que es un estilo de escritura que usa
una letra en minúscula al principio de la primera palabra y una letra en mayúscula al principio
de cada palabra siguiente. Por ejemplo, string thisIsCamelCase;.

Los nombres de variable deben comenzar con una letra alfabética. Los desarrolladores
usan el carácter de subrayado para un fin especial, así que intente no usarlo por ahora.
Los nombres de variables deben ser descriptivos y significativos en la aplicación.
Elija un nombre para la variable que represente el tipo de datos que va a contener.

Los nombres de variable deben ser una o varias palabras completas anexadas. No use
contracciones ni abreviaturas, ya que el nombre de la variable (y, por tanto, su fin) puede no
quedar claro para otros usuarios que lean el código.

Los nombres de variables no deben incluir el tipo de datos de la variable. Puede que
aparezcan algunas recomendaciones para usar un estilo como string strValue;. Esas
recomendaciones ya no son pertinentes.

En el ejemplo string firstName; se siguen todas estas reglas y convenciones y se da


por hecho que se quiere usar esta variable para almacenar datos que representan el nombre de
una persona.

11.3. Ejemplos de nombres de variables

Estos son algunos ejemplos de declaraciones de variables que usan los tipos de datos
que ha aprendido hasta ahora:

12. Resumen

Esto es lo que ha aprendido hasta el momento sobre las variables:

o Las variables son valores temporales que se almacenan en la memoria del


equipo.

o Para poder usar una variable, hay que declararla.

o Para ello, primero se selecciona un tipo de datos correspondiente al tipo de


datos que se quiere almacenar y, luego, se asigna a la variable un nombre que
siga las reglas.

o Ahora que sabe cómo declarar una variable, vamos a aprender a establecer,
recuperar e inicializar el valor de una variable.
13. Configuración y obtención de valores de variables

Dado que las variables son contenedores de almacenamiento temporal de datos, están
pensadas para que escribir en ellas y leerlas. En el siguiente ejercicio tendrá la oportunidad de
hacer ambas cosas.
13.1. Creación de la primera variable

Seleccione todo el código en el editor de .NET y presione la tecla Suprimir o


Retroceso para eliminarlo.

En el editor de código, escriba el código siguiente:

Para declarar una variable, escriba el tipo de datos que desee usar seguido de un
nombre para la variable. Para asignar un valor a una variable, se usa el operador de
asignación, que es un carácter de igual =.
Nota
La asignación de un valor también se conoce como "establecimiento de la variable" o,
simplemente, una operación "set".

13.2. Asignación incorrecta de un valor a una variable

Es importante tener en cuenta que la asignación se produce de derecha a izquierda.


Dicho de otro modo, el compilador de C# debe comprender primero el valor del lado derecho
del operador de asignación para poder realizar después la asignación a la variable en el lado
izquierdo del operador de asignación. Si el orden se revierte, se confunde al compilador de
C#.
Modifique el código escrito para que coincida con el siguiente:

Ahora, ejecute el código. Se ve el error siguiente en la consola de salida:


(2,1): error CS0131: The left-hand side of an assignment must be a variable, property or
indexer
13.3. Asignación de un valor del tipo de datos incorrecto a la variable

Hemos aprendido que C# se ha diseñado para aplicar tipos. Cuando trabajamos con
variables, aplicar tipos significa que no se puede asignar un valor de un tipo de datos a una
variable declarada para contener otro distinto.

Modifique el código escrito para que coincida con el siguiente:

Ahora, ejecute el código. Se ve el error siguiente en la consola de salida:


(2,9): error CS0029: Cannot implicitly convert type 'string' to 'int'
El mensaje de error sugiere lo que el compilador de C# intenta hacer en segundo
plano. Ha intentado "convertir de forma implícita" la cadena "Bob" en un valor int, pero eso
no es posible. Aun así, C# intentó realizar la conversión, pero se produce un error, ya que no
hay ningún equivalente numérico para la palabra "Bob".
Más adelante encontraremos más información sobre la conversión de tipos implícita y
explícita. Por ahora, recuerde que una variable solo puede contener valores que coincidan con
su tipo de datos especificado.

13.4. Recuperación de un valor almacenado en la variable

Para recuperar un valor de una variable, simplemente se usa el nombre de la variable.


En este ejemplo se establece el valor de una variable; después se recupera ese valor y se
muestra en la consola.
Modifique el código escrito para que coincida con el siguiente:

Ahora, ejecute el código. Se ve el resultado siguiente en la consola de salida:

La recuperación de un valor de una variable también se conoce como "obtención de la


variable" o, simplemente, una operación "get".
A medida que escribe líneas de código, verá que el compilador comprueba el código y
detecta posibles errores. El compilador es una excelente herramienta que le ayudará a obtener
antes el código correcto. Ahora que está familiarizado con diferentes tipos de errores, puede
corregir rápidamente los errores con la ayuda de los mensajes de error del compilador.

13.5. Reasignación del valor de una variable

Puede volver a usar y asignar la variable tantas veces como quiera. Este ejemplo
muestra esa idea.

Modifique el código escrito para que coincida con el siguiente:

Ahora, ejecute el código. Se ve el


resultado siguiente en la consola
de salida:

13.6. Inicialización de la variable

Debe establecer una variable en un valor para poder obtener el valor de la variable. De
lo contrario, verá un error.

Modifique el código escrito en el paso 6 para que coincida con el siguiente:

Ahora, ejecute el código. Se ve el resultado siguiente en la consola de salida:

Para que no se quede una variable local sin asignar, se recomienda establecer el valor
lo antes posible después de declararla.
De hecho, puede realizar la declaración y el establecimiento del valor de la variable
en una línea de código. Esta técnica se denomina inicializar la variable.

Modifique el código escrito para que coincida con el siguiente:

Ahora, ejecute el código. Debería ver la siguiente salida:

14. Resumen

Esto es lo que hemos aprendido sobre cómo trabajar con variables hasta ahora:

 Debe asignar (establecer) un valor a una variable para poder recuperar


(obtener) un valor de una variable.

 Para inicializar una variable, asígnele un valor en el momento de declararla.

 La asignación se produce de derecha a izquierda.

 Como operador de asignación, se usa un signo igual.

 Para recuperar el valor de la variable, simplemente use el nombre de la


variable.
15. Declaración de variables locales con tipo implícito

El compilador de C# funciona en segundo plano para ayudarle a escribir el código.


Puede deducir el tipo de datos de la variable por su valor inicializado. En esta unidad se
obtiene información sobre esta característica, denominada variables locales con tipo
implícito.
15.1. ¿Qué son las variables locales con tipo implícito?

Se crea una variable local con tipo implícito mediante la palabra clave var seguida de
una inicialización de variable. Por ejemplo:

En este ejemplo, se creó una variable de cadena mediante la palabra clave var en lugar
de la palabra clave string.
La palabra clave var indica al compilador de C# que el tipo de datos está implícito en
el valor asignado. Una vez implícito el tipo, la variable actúa igual que si se hubiera usado el
tipo de datos real para declarar la variable. La palabra clave var se usa para ahorrar en
pulsaciones de teclas cuando los tipos son largos o cuando el tipo es obvio por el contexto.
En el ejemplo:

¡Puesto que la variable message se establece inmediatamente en el string valor “Hello


World!", el compilador de C# reconoce la intención y trata cada instancia de message como
una instancia de tipo string.
De hecho, la variable message se escribe como string y nunca se puede cambiar. Por
ejemplo, considere el siguiente código:

Si se ejecuta este código, aparece el siguiente mensaje de error.


(2,11): error CS0029: Cannot implicitly convert type 'decimal' to 'string'
Nota
Otros lenguajes de programación usan la palabra clave var de manera distinta. En C#,
a las variables se les asigna un tipo mediante el compilador independientemente de si se usa
el nombre de tipo de datos real o se permite que el compilador implique el tipo de datos. Es
decir, el tipo se bloquea en el momento de la declaración y, por tanto, nunca puede contener
valores de otro tipo de datos.

16. Las variables que usan la palabra clave var deben inicializarse

Es importante entender que la palabra clave var depende del valor que se usa para
inicializar la variable. Si intenta usar la palabra clave var sin inicializar la variable, aparece
un error al intentar compilar el código.

Si intenta ejecutar este código mientras se compila, aparece la siguiente salida:


(1,5): error CS0818: Implicitly-typed variables must be initialized
16.1. ¿Por qué usar la palabra clave var?

La palabra clave var se ha adoptado ampliamente en la comunidad de C#. Es probable


que, si observa un ejemplo de código en un libro o en línea, verá la palabra clave var usada en
lugar del nombre del tipo de datos real, por lo que es importante comprender su uso.
La palabra clave var tiene un uso importante en C#. Muchas veces, el tipo de una
variable es obvio a partir de su inicialización. En esos casos, es más sencillo usar la palabra
clave var. La palabra clave var también puede ser útil al planear el código de una aplicación.
Al empezar a desarrollar código para una tarea, es posible que no sepa inmediatamente qué
tipo de datos usar. El uso de var puede ayudarle a desarrollar la solución de forma más
dinámica.
A medida que empiece, se recomienda seguir usando el nombre del tipo de datos real
al declarar variables hasta que se sienta más cómodo trabajando con código. El uso del tipo
de datos al declarar variables le ayuda a tener un fin al escribir el código.
16.2. Resumen

Esto es lo que ha aprendido sobre la palabra clave var hasta ahora:

 La palabra clave var indica al compilador que deduzca el tipo de datos de la


variable en función del valor en el que se inicializa.

 Es probable que vea la palabra clave var mientras lee el código de otras
personas; sin embargo, debe usar el tipo de datos cuando sea posible.
17. Crear una cadena interpolada

Ejecute el código siguiente en la ventana interactiva. Seleccione el botón Entrar en el


modo de enfoque. A continuación, escriba el bloque de código siguiente en la ventana
interactiva (reemplace <name> por su nombre) y seleccione Ejecutar:

Al ejecutar el código, Salida muestra una cadena que incluye su nombre en el saludo.
El argumento de cadena de la llamada al método WriteLine es una expresión de cadena
interpolada. Es un tipo de plantilla que permite construir una sola cadena (denominada
cadena de resultado) a partir de una cadena que incluye código incrustado. Las expresiones
de cadena interpoladas son especialmente útiles para insertar valores en una cadena o para
concatenar (unir entre sí) varias cadenas.
El ejemplo anterior contiene los dos elementos que debe tener toda expresión de
cadena interpolada:
Un literal de cadena que empieza con el carácter $ antes del carácter de comillas de
apertura. No puede haber ningún espacio entre el símbolo $ y el carácter de comillas. (Si
quiere ver qué ocurre si incluye uno, inserte un espacio después del carácter $ en la ventana
interactiva y ejecute el código actualizado. El compilador de C# notifica el error "Carácter '$'
no esperado").
Una o varias expresiones de interpolación. Una expresión de interpolación se indica
mediante una llave de apertura y de cierre ({ y }). Puede colocar cualquier expresión de C#
que devuelva un valor (incluido null) dentro de las llaves.
18. Incluir diferentes tipos de datos

En el paso anterior, se ha usado una interpolación de cadena para insertar una cadena
dentro de otra. Sin embargo, cada expresión de interpolación que forma parte de una
expresión de cadena interpolada puede ser de cualquier tipo de datos. Vamos a incluir valores
de distintas expresiones de tipos de datos en una cadena interpolada.
En el siguiente ejemplo, primero definimos una tupla que tiene Name, Price y
perPackage miembros. Ejecute el código siguiente en la ventana interactiva:

Observe que la expresión de interpolación item.Price de la cadena interpolada se


resuelve en el texto "1.99" en la cadena de resultado. Esto se debe a que, cuando el tipo del
resultado de la expresión no es una cadena, el resultado se resuelve en una cadena de la
siguiente manera:

Si la expresión de interpolación se evalúa en null, se usa una cadena vacía ("", o


String.Empty).

Si la expresión de interpolación no se evalúa en null, se suele llamar al método


ToString de la expresión de resultado.

En el resultado de este ejemplo, la fecha es demasiado precisa (el precio de "eggplant" no


varía por segundos) y el valor del precio no indica una unidad de moneda. En el paso
siguiente se aprende a corregir esos problemas al controlar el formato de representaciones de
cadena de los resultados de la expresión.
19. Control del formato de las expresiones de interpolación

En el paso anterior se han insertado en la cadena de resultado dos cadenas con


formato incorrecto. Una era un valor de fecha y hora en la que solo la fecha era apropiada. La
segunda era un precio que no indicaba su unidad de moneda. Ambos problemas se podían
solucionar fácilmente. La interpolación de cadena permite especificar cadenas de formato que
controlan el formato de tipos específicos. Modifique la llamada a Console.WriteLine del
ejemplo anterior para incluir las cadenas de formato para las expresiones de fecha y precio,
como se muestra en la siguiente línea:
Console.WriteLine($"On {date:d}, the price of {item.Name} was {item.Price:C2} per
{item.perPackage} items");
Especifique una cadena de formato al colocar dos puntos (":") después de la expresión
de interpolación y la cadena de formato. "d" es una cadena de formato de fecha y hora
estándar que representa el formato de fecha corta. "C2" es una cadena de formato numérica
estándar que representa un número como un valor de moneda con dos dígitos después del
separador decimal.
Una serie de tipos de las bibliotecas de .NET admiten un conjunto predefinido de
cadenas de formato. Esto incluye todos los tipos numéricos y los tipos de fecha y hora. Para
obtener una lista completa de los tipos que admiten cadenas de formato, vea Dar formato a
cadenas y tipos de biblioteca de clase .NET en el artículo Aplicar formato a tipos de .NET.
Pruebe a modificar las cadenas de formato del ejemplo para ver cómo afectan al
formato de fecha y hora y al valor numérico. Cambie "d" en {date:d} a "t" (para mostrar el
formato de hora corta), "y" (para mostrar el año y el mes) y "yyyy" (para mostrar el año como
un número de cuatro dígitos). Cambie "C2" en {price:C2} a "e" (para la notación
exponencial) y "F3" (para un valor numérico con tres dígitos después del separador decimal).

Además de controlar el formato, también puede controlar el ancho de campo y la alineación


de las cadenas con formato incluidas en la cadena de resultado. En el paso siguiente
aprenderá a hacerlo.
20. Control el ancho de campo y la alineación de expresiones de interpolación

Normalmente, cuando el resultado de una expresión de cadena interpolada tiene


formato de cadena, esa cadena se incluye en una cadena de resultado sin espacios iniciales ni
finales. Especialmente cuando se trabaja con un conjunto de datos, poder controlar el ancho
de un campo y la alineación del texto ayuda a generar una salida más legible. Para ver esto,
ejecute el siguiente código:

Los nombres de elemento están alineados a la izquierda y sus cantidades están


alineadas a la derecha. Para especificar la alineación, se agrega una coma (",") después de una
expresión de interpolación y se designa el ancho de campo mínimo. Si el valor especificado
es un número positivo, el campo se alinea a la derecha. Si es un número negativo, el campo
se alinea a la izquierda.

Pruebe a quitar los signos negativos del código {"Item",-25} e {item.Key,-25} y


vuelva a ejecutar el ejemplo. En esta ocasión, los nombres de elemento se alinean a la
derecha.

Puede combinar un especificador de alineación y una cadena de formato en una única


expresión de interpolación. Para ello, especifique primero la alineación, seguida de dos
puntos y la cadena de formato. Pruebe el siguiente código que muestra tres cadenas con
formato con anchos de campo definidos:
Console.WriteLine($"[{DateTime.Now,-20:d}] Hour [{DateTime.Now,-10:HH}]
[{1063.342,15:N2}] feet");
21. Revisión de la solución

Mi código

El siguiente código es una posible solución al desafío de la unidad anterior.

Este código es solo una posible solución de cómo crear la salida. Por ejemplo, es posible que
haya usado más instrucciones Console.Write(); sin embargo, debe haber inicializado tres
variables para almacenar los tres valores según las instrucciones del desafío.

Además, debería haber usado:

 una variable de tipo string para contener el nombre "Bob".

 una variable de tipo int para almacenar el número de mensajes.

 una variable de tipo decimal, float o double para almacenar la temperatura.

Si la ha creado correctamente, enhorabuena. Vaya a la prueba de conocimientos de la unidad


siguiente.

También podría gustarte