Está en la página 1de 21

TAKE YOUR FIRST Aprendiendo C#

STEPS WITH C#.


Apuntes de los módulos que componen el Path de aprendizaje publicado en la
página oficial de Microsoft Learn:
https://docs.microsoft.com/en-us/learn/paths/csharp-first-steps/
MÓDULO:
WRITE YOUR
FIRST C# CODE.

1
¿Cómo funciona el código?
Para comprender cómo funciona el código, se debe ir un paso atrás y
pensar qué es un lenguaje de programación y cómo comunica sus comandos a
la computadora.

¿Qué es un lenguaje de programación?


Un lenguaje de programación permite escribir instrucciones que se
desea que lleve a cabo una computadora. El trabajo de un lenguaje de
programación es permitir que un humano escriba instrucciones de una manera
comprensible y legible por humanos. Este conjunto de instrucciones se llama
“código fuente”, o simplemente “código”.
En este punto, un desarrollador de software puede actualizar y cambiar
el código, pero la computadora no lo puede entender. Para que la computadora
lo pueda entender, el código, primero debe compilarse.

¿Qué es la compilación?
Un programa especial llamado compilador convierte su código fuente a
un formato diferente que es ejecutable por la CPU de la computadora.
¿Por qué necesitamos compilar nuestro código? Aunque los lenguajes
de programación puedan parecer algo crípticos al principio, los humanos
pueden entenderlo más fácilmente que al lenguaje de la computadora, que se
expresa al apagar o encender miles o millones de pequeños interruptores. Los
compiladores unen estos dos mundos al traducir las instrucciones legibles por
humanos en un conjunto de instrucciones entendibles por la computadora.

¿Qué es la sintaxis?

2
La sintaxis de un lenguaje de programación incluye las palabras clave,
los operadores y otras reglas gramaticales que impone el compilador. En este
sentido, hay mucho por aprender, pero afortunadamente cada concepto es
simple. ¡No te rindas! ¡Puedes aprenderlo!
Al ingresar código en .NET Editor, Visual Studio Code o el IDE Visual
Studio, notará cambios en el color de diferentes palabras y símbolos. El
resaltado de sintaxis es una característica útil para detectar errores en tu
código que no se ajustan a las reglas de sintaxis.

¿Cómo funcionó tu código?


Centrémonos en la siguiente línea de código:
Console.WriteLine("Hello World!");

Al ejecutar este código, se verá el mensaje Hello World! impreso en el


panel de salida. Cuando una frase está entre comillas dobles en C#, se
denomina cadena literal.
La parte Console se llama clase. Las clases “poseen” métodos, o quizás
una mejor manera de decirlo es que los métodos viven dentro de una clase.
Para visitar el método, debe saber en qué clase se encuentra. En este caso,
todos los métodos que operan en su panel de Salida están definidos dentro de
la clase Consola.
La parte WriteLine() se llama método. Siempre puede detectar un
método porque tiene un conjunto de paréntesis después. Por lo tanto, si se
desea invocar un método, siempre debe usar el paréntesis después de su
nombre. Los paréntesis se conocen como el operador de invocación del
método. Cada método tiene un trabajo específico. Algunos métodos necesitan
parámetros de entrada, otros no. El trabajo del método WriteLine()es escribir
una línea de datos en el panel de Salida, estos datos que se imprimen se envían
entre paréntesis de apertura y cierre como parámetro de entrada de dicho
método.
También hay un punto que separa el nombre de la clase y el nombre del
método. El punto es el operador de acceso de miembros. En otras palabras, el
punto es el medio para “navegar” de la clase a uno de sus métodos.

3
Finalmente, el punto y coma es el operador de fin de declaración
(instrucción). Una instrucción es una instrucción completa en C#. El punto y
coma le dice al compilador que hemos terminado de ingresar el comando.

Comprender el flujo de ejecución.


Además, es importante comprender el flujo de ejecución. En otras
palabras, las instrucciones de su código se ejecutaron en orden, una línea a la
vez, hasta que no hubo más instrucciones para ejecutar. Algunas instrucciones
requerirán que la CPU espere antes de poder continuar. Se pueden usar otras
instrucciones para cambiar el flujo de ejecución.

4
MÓDULO:
STORE AND
RETRIEVE DATA
USING LITERAL
AND VARIABLE
VALUES IN C#.

5
¿Qué es un valor literal?
Un valor literal es un valor codificado de forma rígida que nunca
cambia. Cuando mostramos el mensaje Hello World! en el panel Salida,
imprimimos una cadena de caracteres alfanuméricos a través del mismo, es
decir, imprimimos una cadena literal.
El tipo de datos de cadena se utiliza siempre con palabras
alfanuméricas, frases o datos para la presentación, no para el cálculo.

¿Por qué enfatizar los tipos de datos?


Los tipos de datos juegan un papel central en C#. De hecho, el énfasis
en los tipos de datos es una de las características distintivas clave de C# en
comparación con otros lenguajes. Los diseñadores de C# creían que podían

6
ayudar a evitar errores de software comunes mediante la aplicación de tipos de
datos.

Presentación versus cálculo y evaluación.


Si tiene datos que se usan sólo con fines de presentación o referencia,
debe usar un tipo se datos string o char. Si necesita realizar una operación
matemática con valores numéricos, debe usar int o decimal.
Suponga que necesita recopilar datos de un usuario, como un teléfono o
un código postal. Según el país, esos datos pueden consistir en caracteres
numéricos. Sin embargo, dado que rara vez realiza cálculos matemáticos con
números de teléfono y códigos postales, debería preferir usar un tipo de dato
string cuando trabaje con ellos.

Lo mismo puede decirse de bool. Si necesita trabajar con las palabras


"true" y "false" en su aplicación, use un tipo de datos string. Sin embargo, si
necesita realizar una evaluación con los conceptos true o false, utilice un tipo
de dato bool.
Es importante saber que estos valores pueden parecerse a sus
equivalentes literales de cadena. Usted puede pensar que estas declaraciones
son las mismas:

Console.WriteLine("123");
Console.WriteLine(123);

Console.WriteLine("true");
Console.WriteLine(true);

Sin embargo, así es como se imprimen en la pantalla. El hecho es que el


tipo de cosas que puede hacer con el subyacente int o bool serán diferentes a
su string equivalente.

Declarar variables.
Un literal es literalmente un valor codificado. Sin embargo, la mayoría
de aplicaciones requerirán trabajar con valores de los que no sabemos mucho

7
antes de tiempo. En otras palabras, necesitaremos trabajar con datos que
provengan de usuarios, archivos o de la red.
Cuando necesitemos trabajar con datos fuera de nuestro código,
declararemos una variable.

¿Qué es una variable?


Una variable es un elemento de datos que puede cambiar su valor
durante su vida útil. Utilice variables para almacenar temporalmente valores
que pretende usar más adelante en su código. Una variable es una etiqueta que
podemos asignar a una dirección de memoria. Cuando queremos almacenar
temporalmente un valor en esa dirección de memoria, o cuando queremos
recuperar el valor que está almacenado, simplemente usamos el nombre de la
variable.

Declarar una variable.


Para crear una variable, primero debe declarar el tipo de dato y luego
darle un nombre:
string firstName;

En este caso, estamos creando una variable de tipo string llamada


firstName. De ahora en adelante, esta variable solo puede contener valores de
tipo string.

Reglas y convenciones de nombres de variables.


Un desarrollador de software dijo una vez: "La parte más difícil del
desarrollo de software es nombrar las cosas".
Aquí hay algunas consideraciones importantes sobre los nombres de
variables:

8
 Los nombres de variables pueden contener caracteres
alfanuméricos y el carácter de subrayado. No se permiten
caracteres especiales como, por ejemplo: # o $.
 Los nombres de las variables deben comenzar con una letra
alfabética o un guión bajo, no con un número. Tenga en cuenta
que el guión bajo se usa para un propósito especial.
 Los nombres de variables no deben ser una palabra reservada de
C#. Por ejemplo, no puede utilizar las siguientes declaraciones:
decimal decimal; o string string;.
 Los nombres de las variables distinguen entre mayúsculas y
minúsculas, lo que significa que string Value; y string value; son
dos variables diferentes.
 Los nombres de variables deben usar mayúsculas y minúsculas,
que es un estilo de escritura que usa una letra minúscula al
principio de la primera palabra y una letra mayúscula al principio
de cada palabra subsiguiente. Por ejemplo, string
thisIsCamelCase;.
 Los nombres de las variables deben ser descriptivos y
significativos. Elija nombres que representen el tipo de datos que
contendrán.
 Los nombres de las variables deben ser una o más palabras
completas unidas. No use contracciones porque el nombre de la
variable (y, por lo tanto, su propósito) puede resultar poco claro
para otras personas que estén leyendo su código.
 Los nombres de las variables no deben incluir el tipo de datos de
la variable. Es posible que vea un estilo como string strValue;.
Esa sugerencia, ya no es actual.

Declarar una variable y asignarle un valor.


Para asignar un valor a una variable, se utiliza el operador de
asignación, que es un solo carácter = (igual). Por ejemplo:
string firstName;

9
firstName = "Bob"; ejemplo:
Asignar un valor también se conoce como "establecer la variable", o
simplemente, "establecer".

Intento de asignar incorrectamente un valor a una


variable.
Es importante notar que la asignación ocurre de derecha a izquierda. El
compilador de C# primero debe comprender el valor en el lado derecho del
operador de asignación, luego puede realizar la asignación a la variable en el
lado izquierdo. Si invierte el orden, confundirá al compilador:
string firstName;
"Bob" = firstName;

Si ejecuta este código, notará que el primer error que verá será:
(2,1): error CS0131: The left-hand side of an assignment must be a

variable, property or indexer

Asignar incorrectamente un valor del tipo de dato


incorrecto a la variable.
Cuando se trabaja con variables, la aplicación de tipos significa que no
puede asignar un valor de un tipo de dato a una variable declarada para
contener un tipo de dato diferente. Es decir, si declarase:
int firstName;
firstName = "Bob";

Observará el siguiente error 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. Intentó "convertir implícitamente" la cadena "Bob" en un valor
int; sin embargo, eso es imposible.

10
Recupera un valor que almacenaste en la variable.
Para recuperar un valor de una variable, simplemente use el nombre de
la variable. Este ejemplo establecerá el valor de una variable, luego recuperará
ese valor y lo imprimirá en la consola.
string firstName;
firstName = "Bob";
Console.WriteLine(firstName);

Recuperar un valor de una variable también se conoce como "obtener la


variable", o simplemente, "obtener".

Reasignar el valor de una variable.


Puede reutilizar y reasignar la variable tantas veces como desee. Este
ejemplo ilustra esa idea:
string firstName;
firstName = "Bob";
Console.WriteLine(firstName);
firstName = "Beth";
Console.WriteLine(firstName);
firstName = "Conrad";
Console.WriteLine(firstName);
firstName = "Grant";
Console.WriteLine(firstName);

Inicializar la variable.
Debe establecer una variable en un valor antes de poder obtener el valor
de la variable. De lo contrario, verá un error. Por ejemplo, si ejecuta el
siguiente código:
string firstName;
Console.WriteLine(firstName);

Observará el siguiente resultado por la consola de salida:

11
(2,19): error CS0165: Use of unassigned local variable 'firstName' la
Para evitar la posibilidad de una variable local sin asignar, le
recomendamos que establezca el valor lo antes posible después de declararlo.
De hecho, puede realizar tanto la declaración como establecer el valor
de la variable en una línea de código. Esta técnica se denomina inicialización
de la variable. Tal como aquí se muestra:
string firstName = "Bob";

Variables locales tipificadas implícitamente.


El compilador de C# ofrece muchas ventajas a medida que escribe su
código. Puede inferir el tipo de datos de su variable por su valor inicializado.
Aquí aprenderá acerca de esta función, denominada variables locales
tipificadas implícitamente.

¿Qué son las variables locales implícitamente tipadas?


Se crea una variable local con tipo implícito mediante la palabra
reservada var, que indica al compilador de C# que deduzca el tipo. Después de
inferir el tipo, es lo mismo que si se hubiera utilizado el tipo de datos real para
declarar la variable.
En el siguiente ejemplo, declararemos una variable utilizando la palabra
reservada var en lugar de string:
var message = "Hello world!";

Debido a que la variable message se establece inmediatamente con el


valor de la cadena literal "Hello World!", el compilador de C# infiere el tipo de
dato y trata cada instancia de message como una instancia de tipo string.
De hecho, la variable message se escribe para ser una cadena y nunca se
puede cambiar.
Al intentar establecer el valor decimal literal de 10.0m en la variable
message:

var message = "Hello World!";

12
message = 10.0m; y
En el momento de ejecutar el código, se verá el siguiente error:
(2,11): error CS0029: Cannot implicitly convert type 'decimal' to
'string'.

La palabra reservada var sólo se puede usar si la


variable está inicializada.
Es importante comprender que la palabra reservada var depende del
valor que utilice para inicializar la variable. Si intenta usar la palabra
reservada var sin inicializar la variable, recibirá el siguiente error cuando
intente compilar su código:

(1,5): error CS0818: Implicitly-typed variables must be initialized .

¿Por qué usar la palabra reservada var?

La palabra reservada var ha sido ampliamente adoptada en la


comunidad de C# y tiene un uso muy importante en este lenguaje. Al escribir
código avanzado, hay situaciones en las que el tipo de datos puede no ser
obvio en el momento de inicializar la variable. De hecho, en algunos casos, C#
puede inventar un nuevo tipo de datos solo para su código y es posible que no
pueda darle un nombre predecible antes de tiempo. Pero estas son funciones
avanzadas que veremos más adelante.

13
MÓDULO:
PERFORM BASIC
STRING
14
FORMATTING IN
C#.

Formateo de cadenas literales en C#.


C# proporciona una gran cantidad de opciones para dar formato a las
cadenas. Sólo veremos algunos de los más utilizados en este módulo. Sin

15
embargo, casi cualquier cosa que puedas imaginar, podrías lograrlo. La parte
más difícil puede ser saber qué terminología usar al buscar respuestas.

Secuencias de caracteres de escape.


Una secuencia de caracteres de escape es una instrucción especial para
el tiempo de ejecución de que desea insertar un carácter especial que afectará
la salida de su cadena. En C#, las secuencias de caracteres de escape
comienzan con una barra invertida \ y luego incluyen otro carácter.
Por ejemplo, la secuencia de caracteres \n agregará una nueva línea y la
secuencia \t, una tabulación. Veamos:
Console.WriteLine("Hello\nWorld!");
Console.WriteLine("Hello\tWorld!");

Al ejecutar este código, obtendremos el siguiente resultado en la


consola de salida:
Hello
World!
Hello World!

¿Y si se necesita insertar una comilla doble en una cadena literal? Si no


se usa la secuencia de escape de caracteres, el compilador entenderá que desea
terminar la cadena prematuramente y no entenderá el propósito de los
caracteres después de la segunda comilla doble. Veamos:
Console.WriteLine("Hello "World"!");

Si este ejemplo se intenta ejecutar, el resultado será el siguiente:


(1,27): error CS1003: Syntax error, ',' expected
(1,27): error CS0103: The name 'World' does not exist in the current
context
(1,32): error CS1003: Syntax error, ',' expected

Para manejar esta situación, debemos utilizar la secuencia de escape \":


Console.WriteLine("Hello \"World\"!");

Y obtendremos el siguiente resultado:


Hello "World"!

16
¿Qué sucede si necesita usar la barra invertida para otros fines, como,
por ejemplo, mostrar una ruta de archivo?
Console.WriteLine("c:\source\repos");

C# reserva la barra invertida para las secuencias de escape, por lo que si


se ejecuta el código, el compilador mostrará el siguiente error:
(1,22): error CS1009: Unrecognized escape sequence

\r no produce error porque es una secuencia de escape válida para un


retorno de carro. El problema ocurre con la secuencia \s.
Para resolver el problema, utilice \\ para mostrar una sola barra
invertida:
Console.WriteLine("c:\\source\\repos"); mostrar una
Es decir, al escapar del carácter de barra invertida, se obtiene el
resultado pretendido en la consola de salida:
c:\source\repos

Literal de cadena textual.


Un literal de cadena textual mantendrá todos los espacios en blanco y
los caracteres sin necesidad de escapar con la barra invertida. Para crear una
cadena textual, use la directiva @ antes de la cadena literal:
Console.WriteLine(@" c:\source\repos
(this is where your code goes)");

Observe que la cadena abarca dos líneas y el espacio en blanco


generado por esta instrucción de C# se mantiene en el siguiente resultado:
c:\source\repos
(this is where your code goes)

Caracteres de escape Unicode.

17
También puede agregar caracteres codificados en cadenas literales
usando la secuencia de escape \u, luego un código de cuatro caracteres que
represente algún carácter en Unicode (UTF-16).
// Kon'nichiwa World
Console.WriteLine("\u3053\u3093\u306B\u3061\u306F World!"); de
Este código, generará el siguiente resultado por consola:
こんにちは World!

  Nota
Hay varias advertencias aquí. En primer lugar, algunas consolas, como el símbolo
del sistema de Windows, no mostrarán todos los caracteres Unicode. En su lugar,
reemplazará esos caracteres con caracteres de signo de interrogación. Además, los
ejemplos utilizados aquí son UTF-16. Algunos caracteres requieren UTF-32 y, por lo
tanto, requieren una secuencia de escape diferente. Según sus necesidades, es
posible que deba dedicar bastante tiempo a aprender y trabajar con caracteres
Unicode en sus aplicaciones.

Concatenación de cadenas.
A menudo, necesitará combinar datos de fuentes diferentes, incluidas
cadenas literales y variables que contienen texto y datos numéricos. Aquí
utilizaremos la concatenación de cadenas para combinar dos o más valores en
una nueva cadena.

¿Qué es la concatenación de cadenas?

18
La concatenación de cadenas es "el habla del programador" para
simplemente combinar dos o más valores en un nuevo valor. A diferencia de
la suma, el segundo valor se agrega al final del primer valor, y así
sucesivamente.

Concatenar una cadena literal y una variable.


Para concatenar dos cadenas, se utiliza el operador de concatenación de
cadenas, que es el símbolo más +.
Agregue el siguiente código a la ventana de código:
string firstName = "Bob";
string message = "Hello " + firstName;
Console.WriteLine(message);

Ahora, ejecute el código. Verá el siguiente resultado en la consola de


salida:
Hello Bob

Observe el orden: la primera cadena "Hello " está primera en la nueva


cadena y el valor de la variable firstName se agrega al final.

Concatenar múltiples variables y cadenas literales.


Puede realizar varias operaciones de concatenación en la misma línea de
código. Por ejemplo, modificando el código anterior:
string firstName = "Bob";
string greeting = "Hello";
string message = greeting + " " + firstName + "!";
Console.WriteLine(message); de
Aquí creamos un mensaje más complejo combinando variables y
cadenas literales. Si ejecutamos el código, veremos el siguiente resultado:
Hello Bob!

Evitar variables intermedias.

19
En los ejemplos anteriores, usamos una variable adicional para contener
la nueva cadena que resultó de la operación de concatenación. A menos que
tenga una buena razón para hacerlo, puede (y debe) evitar el uso de variables
intermedias. Es decir, evite crear variables intermedias si agregarlas no
aumenta la legibilidad de su código.
Veamos cómo hacerlo modificando el código anterior:
string firstName = "Bob";
string greeting = "Hello";
Console.WriteLine(greeting + " " + firstName + "!");

Ahora, ejecuta el código. El resultado en la consola de salida debería ser


el mismo, sin embargo, simplificamos el código.

Interpolación de cadenas.

20

También podría gustarte