Las variables en C# son como cajas donde podemos guardar diferentes valores y tipos de datos esenciales para cualquier programación eficaz. Destacar cómo utilizarlas correctamente es fundamental para escribir un código claro y eficiente.
¿Cómo inicializar un proyecto en C#?
Crear un proyecto: Para comenzar, vamos a crear un proyecto de consola en Visual Studio. Por ejemplo, nombrémoslo string example.
Configurar el namespace: El namespace debe coincidir con el nombre del proyecto, utilizando el formato Pascal Case. Esto asegura coherencia y claridad en el código.
¿Cómo utilizar variables de texto?
Utilizar variables de texto o strings es una tarea común en C#. Aquí te muestro cómo puedes hacerlo:
string fullUserName;// Declaración de la variableConsole.WriteLine("What's your name?");Console.Write("Please write your full name: ");fullUserName = Console.ReadLine();// Leer el nombre del usuarioConsole.WriteLine("Hello, "+ fullUserName +" welcome to Platzi!");
Aspectos clave:
Camel Case para variables: Utilizamos camelCase para el nombre de las variables, comenzando en minúscula y capitalizando cada palabra subsiguiente.
Concatenación de strings: Usamos el operador + para concatenar strings con otras variables.
¿Cómo manejar variables numéricas en C#?
Trabajar con números requiere un enfoque similar al de texto, pero con conversiones explícitas cuando se trata con input de usuario.
Ejemplo de calculadora numérica:
Console.WriteLine("Input the first number:");int number1 = Convert.ToInt32(Console.ReadLine());// Conversión explícitaConsole.WriteLine("Input the second number:");int number2 = Convert.ToInt32(Console.ReadLine());int result = number1 * number2;Console.WriteLine("The result is: "+ result);
Detalles importantes:
Conversión explícita: Utilizamos Convert.ToInt32() para convertir la entrada del usuario, que es inicialmente un string, a un entero.
Legibilidad del código: Nombres de variables claros y explícitos, como number1, number2 y result, facilitan la comprensión del código.
¿Es recomendable usar var en C#?
Aunque C# permite el uso de var para declarar cualquier tipo de variable, siempre que el compilador pueda inferirlo, se recomienda evitarlo para tipos de datos más complejos para mejorar la legibilidad del código.
Recordatorio final
Siempre recuerda utilizar el tipo de dato correcto al declarar tus variables. Este enfoque no solo mejora la legibilidad del código, sino que también asegura una mayor precisión en el flujo de trabajo. Además, Familiarizarte con las diferentes conversiones y convenciones de nomenclatura en C#, como Pascal Case y camelCase, te permitirá escribir código más claro y profesional. ¡Continúa perfeccionando tus habilidades y sigue aprendiendo!
La conversión implícita se da cuando convertimos un tipo de doto que ocupa un tamaño menor en memoria a un que ocupa uno mayor por ejemplo:
byte b =1;int i = b;
En este ejemplo estamos convirtiendo un tipo de dato byte que ocupa un solo byte en memoria a un un tipo de dato int que ocupa 4 bytes en memoria. Lo que ocurre internamente en memoria es:
b =00000001i =00000000000000000000000000000001
La variable b esta compuesta de 7 ceros y un 1 y al convertir esta variable a un tipo de dato int C# añade 24 ceros para completar los 4 bytes, por lo que no hay perdida de información.
En el caso contrario
int i =1;byte b = i;
Para realizar la conversión se necesitan eliminar 4 bytes de información por lo que C# no permite convertir los datos ya que podría haber una perdida de información. Para realizar esta conversión tenemos que expresar de forma explicita la conversión para decirle a C# que estamos seguros de realizarla. A esto se le conoce como casteo de datos. El casteo de datos en C# se hace de la siguiente forma:
int i =1;byte b =(byte)i;
Pero que pasa si tratamos de castear datos que no son compatibles por ejemplo:
string s ="1";int i =(int)s;
Esta instrucción no va a compilar por que los tipos nos son compatibles y el casteo no funciona. Esto se debe a que la forma en la que se guarda la información de cadena de texto y un número son diferentes. Para realizar esta conversión podemos hacer uso de los métodos predefinidos como los siguientes:
string s ="1";int i =Convert.ToInt32(s);int j = int.Parse(s);
Todos los tipos de datos en C# poseen el método Parse que convierte una cadena de caracteres en su tipo de dato, en este caso int. La clase Convert posee varios métodos para convertir una cadena de caracteres en varios tipos de datos:
ToByte()
ToInt16()
ToInt32()
ToInt64()
Los números 16, 32 y 64 corresponden al número se bits que son equivalentes a 2, 4 y 8 bytes.
Muy buen aporte, muchísimas gracias por el resumen
Excelente aporte
Vamo a darle
¡Tu momento ha llegado!
XD
Para los que les interese también se puede mostrar las variables de esta manera, aquí el contenido de la variable se muestra en lugar de "{0}"
int result = numberOne * numberTwo;Console.WriteLine("The result is: {0}", result);
En esta forma si quieres utilizar más variables haces esto:
int result = numberOne * numberTwo;Console.WriteLine("The result {0} X {1} = {2}", numberOne, numberTwo, result);
Observen que cada numero corresponde a una variable según el orden.
Genial aporte!
Otra forma de llamar a las variables es agregando el simbolo "$" antes de las comillas dobles, y luego encerrar con llaves la variable a usar. 💪
int result = number1 * number2;Console.WriteLine($"The result is: {result}");
Buen aporte, lo probé y solo me funcionó usando el símbolo $ antes de las comillas.
Para convertir en entero también se puede utilizar Int32.Parse( variableAConvertir );
Las conversiones funcionan de dos formas y son las siguientes:
IMPLICITAS: Estas las realiza de forma automática C# cuando asignamos una valor de un mismo tipo de menor cantidad en espacio de memoria a uno de mayor ejemplo pasar un int a long, asignando el valor int a una variable long.
EXPLICITAS: Son conversiones que debemos especificar debido a que C# no sabe realmente a que tipo de dato queremos asignar lo que estamos tratando de guardar en una variable, ejemplo: convertir un string a un int.
:thumbsup:
buen dato
¿Qué es una variable? 🤔
Una variable es como un contenedor que se usa para almacenar valores, estos valores se pueden usar más adelante en el código.
Una variable es un elemento de datos que puede cambiar su valor durante su ciclo de vida.
Una variable es una etiqueta descriptiva que se puede asignar a una dirección en memoria del equipo, si se quiere recuperar el valor almacenado en la dirección de memoria, simplemente se usa el nombre de la variable creada.
Una variable posee un tipo, nombre y valor.
ㅤㅤ
1️⃣ Declarar una variable con tipo explícito
Para declarar una variable en C#, primero se declara el tipo de dato y luego se asigna un nombre.
string firstName;
ㅤㅤ
2️⃣ Declarar una variable con tipo implícito
Para crear una variable de tipo implícito se utiliza la palabra clave var, se asigna un nombre y se inicializa. Es importante entender que si intenta usar la palabra clave var sin inicializar, aparecerá un error (error CS0818: Implicitly-typed variables must be initialized).
var message ="Hello C#";
😎 A diferencia de otros lenguajes de programación la palabra clave var se usa de manera distinta. En C#, el tipo de datos se bloquea en el momento de la declaración y, por tanto, nunca puede contener valores de otro tipo de datos.
ㅤㅤ
3️⃣ Declarar una constante
Para crear una constante se usa la palabra clave const. Las constantes son un tipo de dato invariable, su valor se establece en tiempo de compilación.
Se usan de forma muy similar a las variables, con la diferencia de que no podemos modificar su valor durante la ejecución.
constdouble PI =3.14159;
No me gusto la nueva forma de VS2022, creo que me regire por lo clasico esciribinedo toda la sintaxis del VS2019.
y eso, para mi esta muy bien
Puedes continuar usando el Visual Studio 2022 y descargarte el Framework que usan en el curso desde el VS Installer.
Así podrás programar con la misma sintaxis sin tener la necesidad de instalar otra aplicación.
++Nombrar Clases y Variables++
Comúnmente podemos encontrar formas distintas para escribir los nombres de nuestros programas, clases y variables. Estas son:
🐍snake_case: Sólo usa mayúsculas y separa las palabras con guión bajo ( _ ). Por consenso se usa en Python
👴PascalCase: Cada inicial con mayúscula y sin ningún tipo de separación entre palabras. El consenso indica que es la forma que usaremos para escribir los nombres de nuestros archivos, namespace (el nombre del programa y el namespace deben ser iguales también por mero consenso) y clases
🐫camelCase: Primera inicial en minúscula y el resto en mayúscula, sin separación entre palabras. Esto lo usaremos para las variables (sí, nuevamente se trata de puro consenso).
De la mano con los puntos anteriores y por comodidad, sobre todo a la hora de trabajar en equipo, se recomienda que cada elemento (métodos, variables, funciones, etc) de nuestro programa use nombres representativos, es decir, que nombremos cada cosa de forma que se pueda entender sin dificultad qué debería representar o hacer, y siempre acompañando con el tipo de dato que va a poseer la variable (en caso de tratarse de una)
int number1;int number2;
💡Recordemos que podemos usar a modo de comodín la palabra reservada var en lugar del tipo de valor específico a manejar, mas no es lo recomendado:
var number1;var number2;
++Casteos y ReadLine++
Ahora, pueden darse casos en los que necesitemos hacer cambiar el tipo de dato que vamos a utilizar y que el sistema no lo esté haciendo por su cuenta (casteo implícito, int -> long , por ejemplo), siendo necesario que nosotros realicemos el cambio de forma manual (casteo explícito, string -> int, por ejemplo). En estas situaciones C# posee un método para realizar esta tarea usando Convert
int number1;int number2;Console.WriteLine("Input the first number");number1 =Convert.ToInt32(Console.ReadLine());Console.WriteLine("Input the second number");number2 =Convert.ToInt32(Console.ReadLine());int result = number1 * number2;Console.WriteLine("The result is: "+ result);
Con Convert iniciamos el proceso de cambio de tipo de variable, pasando del string (aplicado por C#), seguido del tipo de dato a seleccionar y su peso en bytes con ToInt32 .
💡Recordemos que Console.ReadLine() lo utilizamos para ingresar información, números enteros en este caso, por nuestra terminal. Aquí estaríamos indicando que lo ingresado con Console.ReadLine() debe ser convertido a int mediante el método Convert
Convert.ToInt32(Console.ReadLine());
Excelente resumen! Gracias. 😺
El método WriteLine()
Este método es el que se usa para mostrar texto en la consola, el método escribe en la pantalla el valor que le pasemos como parámetro. El parámetro que recibe el método puede ser de varios tipos, ya sea una cadena de caracteres, un número entero, una línea en blanco, etc.
El método ReadLine()
Este método se utiliza para recoger la información que el usuario introduce cuando la aplicación así lo requiera.
Me pareció muy útil la práctica para declarar variables:
Camel Case: Es la práctica de escribir frases sin espacios ni puntuación, indicando la separación de palabras con una sola letra en mayúscula, la primera palabra en minúscula.
Aquí les dejo este enlace donde muestra otros estilos como Camel, Pascal, Snake, and Kebabhttps://betterprogramming.pub/string-case-styles-camel-pascal-snake-and-kebab-case-981407998841
En que casos es o conviene usar var ?
Si quieren saber mas de "var":
Me estaba asustando al inicio, pero pues ahora estoy feliz 💚
X2
PascalCase es como camelCase pero empezando con mayúscula.
No sabía que se llamaba PascualCase
¿Es correcto utilizar otro tipo de convencion en vez de camelCase por ejemplo snake_case?
Tecnicamente no porque snake case se utiliza casi exclusivamente para python que es el chiste del lenguaje jajaja. Pero si es un proyecto unico para ti, no veo por que no. Siempre y cuando no sea un trabajo grupal, anticipo que no habria ningun tipo de problema.
Puedes o no seguir la convención, al final el código funcionará siempre que lo escribas con la sintaxis correcta. Pero apegarte a las convenciones te permitirá crear código consistente, te ayudará a leer, comprender y mantener el código de otros más fácilmente. (Alerta de spolier: en un futuro, quizá no muy lejano, de tu carrera como programador llegará un punto en el que leerás más código del que escribes).
Te comparto un link con las convenciones de código de C#.
hola no se si alguien me conteste pero ahi va: vengo del curso basico de programacion en c#. viendo superficialmente veo que aqui usan na version anterior a .Net y varios de los mismos temas vistos en el otro curso. me recomiendan tomar este curso aun si ya complete el otro? de antemano gracias si alguien me responde.
lo tomaste? yo queria empezar con este pero lo desactualizado de la version no me convence.
al final siempre no, lo desactualizado del curso y que no era algo que realmente queria aprender me echaron para atras.
por que la clase se llama asi si lo que explican es el uso de variables?
¿Cómo debería de llamarse?
Excelente hasta ahora, les cuento que este será uno de los lenguajes que desarrollaré en mi nuevo trabajo :)