German Pinilla
Jhoan Sebastián Lopera Gallego
Gracias
Hans Joel
Gracias por el aporte caballero!!
En C# existe una forma más rápida y limpia de declarar variables: la palabra reservada var. Si vienes programando con tipos explícitos como int o double, entender cómo funciona la declaración implícita con var te va a ahorrar tiempo y hará tu código más legible, sobre todo si trabajas en desarrollo web.
Qué hace la palabra reservada var en C#
La palabra var sirve para declarar variables de forma implícita. Esto significa que, en lugar de decirle al compilador qué tipo de dato vas a guardar, dejas que C# lo deduzca automáticamente a partir del valor que asignas.
Cuando declaras una variable de forma explícita, le indicas a C# exactamente con qué tipo de dato vas a trabajar:
int ladoA; obliga a usar números enteros.double ladoA; obliga a usar números con decimales.string nombre; obliga a usar texto.Con var, en cambio, C# revisa el valor inicial que asignas y deduce el tipo por ti. Es bastante inteligente y, en la mayoría de casos cotidianos, funciona sin fricción.
¿Qué significa declarar una variable de forma implícita? Es dejar que el lenguaje deduzca el tipo de dato según el valor que le asignas, en lugar de declararlo tú manualmente.
Por qué var obliga a inicializar la variable
Aquí está el detalle que sorprende a muchos: cuando usas var, siempre debes inicializar la variable en la misma línea. Si solo escribes var ladoA; sin asignarle valor, Visual Studio te marcará error con el mensaje: "las variables con tipo implícito se deben inicializar".
¿La razón? C# necesita una pista para deducir el tipo. Sin valor inicial, no tiene cómo saber si guardarás un entero, un decimal o un texto.
Mira la diferencia en código:
csharp // Explícita: puedes declarar sin inicializar double ladoA;
// Implícita: debes inicializar siempre var ladoA = 1.1; var ladoB = 1.1; var resultado = 1.1;
Al asignarle 1.1, C# entiende que ladoA es un double y se comporta exactamente igual que si lo hubieras declarado de forma explícita.
Cómo lee C# tu código de forma secuencial
Un detalle clave del flujo de ejecución: C# lee tu código línea por línea, de arriba hacia abajo. Primero conoce las variables que declaras, luego ejecuta los Console.WriteLine, después captura las entradas del usuario y al final calcula y muestra el resultado.
Esto significa que inicializar las variables con 1.1 al inicio no afecta el resultado final, porque esos valores se sobrescriben cuando el usuario ingresa los suyos. Por ejemplo, al ingresar 10.1 para el lado A y 20 para el lado B, el cálculo arroja 202, demostrando que var manejó perfectamente los decimales.
Cuándo conviene usar declaración explícita o implícita
La pregunta natural es: si var es más fácil, ¿por qué aprender la forma explícita? La respuesta tiene que ver con el control y la optimización.
La idea es simple: si cada pedacito de memoria cuenta, controla tú el tipo. Si trabajas en proyectos donde la legibilidad pesa más que el microajuste de recursos, var te hace la vida más cómoda.
¿Var es más lento que declarar el tipo explícito? No. En tiempo de ejecución se comporta igual, porque C# resuelve el tipo durante la compilación. La diferencia es solo de escritura y legibilidad.
Cómo se ve var en un programa real
Imagina que pides al usuario los lados de un rectángulo y calculas su área. Con var, el código queda así:
csharp var ladoA = 1.1; Console.WriteLine("Ingrese el valor del lado A"); ladoA = double.Parse(Console.ReadLine());
var ladoB = 1.1; Console.WriteLine("Ingrese el valor del lado B"); ladoB = double.Parse(Console.ReadLine());
var resultado = ladoA * ladoB; Console.WriteLine("El resultado es: " + resultado);
Guarda con Ctrl + S (o Cmd + S en Mac), ejecuta y verás cómo C# acepta decimales sin protestar. Ingresa 10.1 y 20, y obtendrás 202 como resultado.
Por qué importa conocer ambas formas de declarar variables
Dominar las dos formas te da flexibilidad. Las variables son el espacio donde almacenas información para resolver problemas, y elegir cómo declararlas afecta la claridad y el rendimiento de tu programa.
Si vas por el camino del desarrollo web, var será tu compañera diaria. Si te interesa lo técnico y profundo, como motores de videojuegos o sistemas embebidos, las declaraciones explícitas serán parte fundamental de tu arsenal.
¿Tú con cuál te quedas: var o tipos explícitos? Cuéntame en los comentarios en qué proyecto te imaginas usándolas.
German Pinilla
Jhoan Sebastián Lopera Gallego
Gracias
Hans Joel
Gracias por el aporte caballero!!
Diego Toro Cárdenas
Bueno… por buenas practicas a la hora de trabajar con las variables.
var debemos de inicializar.mmm... ok.
Nicolas Rios
wow ya llevo como 2 años aprendiendo a programar y no se cuando fue la ultima vez que me enseñaron utilizando var la verdad es una herramiendo muy util que me gusta utilizar
Jhoan Sebastián Lopera Gallego
Total
Carlos andres Orduz
por que se inicia con rango en Var 1.1 ¿ siempre de debe iniciar en este rango? me pueden dar una explicación del rango de iniciación
Juan Manuel Rubio Gallego
La razón por la que el profe inicializa las variables con 1.1 puede deberse a una elección arbitraria de un valor inicial para las variables, o podría ser simplemente para indicar que son variables de punto flotante (valores decimales) en lugar de enteros.
Es importante tener en cuenta que la elección del valor inicial de una variable depende del contexto y del propósito del programa, y no hay una respuesta única para todas las situaciones. En este caso particular, el valor inicial de 1.1 no tiene ningún efecto en el resultado final del programa, ya que se reemplaza por los valores ingresados por el usuario.
David Alejandro Ramírez Pérez
se inicializa con 1.1 para que C# entienda que la variable es un flotante y no un número entero
Platzi Team
Palabra resrvada var
La palabra reservada "var" en C# se utiliza para declarar variables de tipo "implícito" o "inferencia de tipo".
Es una forma abreviada de declarar una variable y especificar el tipo, ya que el compilador infiere el tipo correcto automáticamente. Sin embargo, debes tener en cuenta que el tipo de una variable declarada con "var" debe ser obvio en el contexto de la asignación.
Utilizar "var":
Copy code var myVariable = "Hello, World!";
En este ejemplo, el compilador infiere que el tipo de la variable "myVariable" es "string" en base al valor asignado.
No utilizar "var":
Copy code string myVariable = "Hello, World!";
En este ejemplo, se especifica explícitamente que el tipo de la variable "myVariable" es "string".
Jhoan Sebastián Lopera Gallego
Gracias por e dato compañero
Anggi Vanesa Pallares Solis
Ernesto Cajar
Otra forma util de usar var es usando objetos anonimos, usamos var, para definir objetos sin tipos estrictos: por ejemplo: var persona = {name = "Andres", edad = 15}
juan camilo salazar
// ejercicio de sumas: var numero4 =1.0 ; var numero5 =1.0 ; var ResultadoSuma = 1.0; Console.WriteLine(" Ingrese el numero a sumar: "); numero4 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine(" Ingrese el numero a sumar: "); numero5 = Convert.ToDouble(Console.ReadLine()); ResultadoSuma = numero4 + numero5; Console.WriteLine(ResultadoSuma) ;
MARCO ANTONIO REYES GONZALEZ
"Las variables nos sirven para almacenar información, que vamos utilizar para resolver problemas." cool
Oscar Iboy
Para activar el "Guardado Automático": Herramientas -> Opciones -> Entorno -> Documentos -> Check en "Guardar archivos automáticamente cuando Visual Studio está en segundo plano"
alfredo salmoran
porque para inicializar las variables se les debe poner 1.1 y no solo 1 o 0, cualquier otro numero.
Ludwin Eduardo Escobar Flores
Es debido a que la variable toma el tipo del valor con la que se inicializa, por ejemplo al inicializar con 1.1 la variable se crea con el tipo double, si la inicializas con 1 o 0 se inicializa como entero.
Si colocas
var ladoA = 1; ladoA = Convert.ToDouble("100.25");
Te dará un error que no se puede convertir explicitamente un double a int.
Denny German
Primero hay que saber que es la Inferencia. La inferencia es un proceso por el cual el compilador determina el tipo de una variable local que ha sido declarada sin una declaración explícita de su tipo. El tipo es inferido a partir del valor inicial provisto a la variable. La palabra reservada "var" se utiliza para declarar una variable cuyo tipo se infiere automáticamente en la compilación a partir del valor asignado a ella.
Ejemplo:
var nombre = "Juan"; // se infiere que nombre es de tipo string var edad = 25; // se infiere que edad es de tipo int var salario = 2000.50; // se infiere que salario es de tipo double
Joan Plascencia López
Al ver esta clase se me ocurrió meter directamente los datos que ingrese el usuario a la variable y asi usar menos lineas de código.
// Programa que calcula el área de un rectángulo. Console.WriteLine(“Bienvenido, este programa calcula el área de un rectángulo”); // Variables y entrada de datos. Console.WriteLine(“Ingresa el valor del lado A”); var LadoA = Convert.ToDouble(Console.ReadLine()); Console.WriteLine(“Ingresa el valor del lado B”); var LadoB = Convert.ToDouble(Console.ReadLine()); var Res = LadoA * LadoB; Console.WriteLine("El resultado es " + Res);
Ahora me estoy preguntando cómo hacer para que el usuario no meta una letra y se rompa todo, quería usarlo con IF’s pero no creo que sea la mejor manera ¿o si?
Rusben Guzman
Cuando estaba haciendo el código tenia un error con la function Convert.ToDouble() porque yo inicializar la variable con el valor de 0 y asumió que ladoA era entero, aquí dejo ejemplos de como inicializar una variable de diferentes maneras para que C# las reconozca como int, float y double:
// Para inicializar como int hay que asignar un numero decimal cualquiera var vairableInt = 0; // Para inicializar como float hay que poner un numero cualquiera seguido de la letra 'f' var variableFloat = 0.0f; // tambien puede ser 0f sin el punto decimal // Para inicializar como double hay que poner un numero con su parte entera y su parte decimal sin usar la letra 'f' var variableDouble = 0.0;
Jose Manuel
var será muy útil, Pero no se ve el tipo de dato retornado. No me parece una buena practica, complica la lectura del código.
Rubén Adrian Rossnagel
EXplicito es de EXacto, es cuando se define un valor, en caso contrario es implicito
Maria Reyes
Considero que en este video falto la explicacion completa sobre como se ejecuto de manera correcta para que diera el resultado correcto.
//Programa que calcula el área de un rectángulo.
var ladoA = 0d; //Declaración de variables
var ladoB = 0d;
var resultado = 0d;
Console.WriteLine("Calcula el área de un rectángulo!!");
Console.WriteLine("Ingrese el valor del lado A");
ladoA = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Ingrese el valor del lado B");
ladoB = Convert.ToDouble(Console.ReadLine());
//
//
resultado = (ladoA + ladoB);
Console.WriteLine("El lado A es: " + ladoA + " El lado B es: " + ladoB + " El Resultado es " + resultado);
Andrés Muñoz
💡¿Por qué el punto decimal no funciona y me da resultados erróneos?
¡Hola comunidad! Si al ingresar decimales con punto (ej. 10.10) el programa ignora el punto y los multiplica como si fueran números enteros (ej. 1010), aquí les explico por qué sucede y cómo solucionarlo.
El Problema: C# utiliza por defecto la Configuración Regional de tu computadora. Si tu sistema está en español, el programa espera una coma (,) como separador decimal. Si escribes un punto, lo ignora o lo interpreta como separador de miles.
La Solución: Para forzar a que el programa siempre acepte el punto (.) sin importar el idioma de la PC, debemos usar CultureInfo.InvariantCulture.
Ejemplo de código corregido:
using System.Globalization; var ladoA = 0.0; var ladoB = 0.0; var resultado = 0.0; Console.WriteLine("Calcula el area de un rectangulo"); Console.WriteLine("Ingrese el valor del lado A (Ejemplo: 10.10)"); // Agregamos la coma entre el ReadLine y el CultureInfo ladoA = Convert.ToDouble(Console.ReadLine(), CultureInfo.InvariantCulture); Console.WriteLine("Ingrese el valor del lado B (Ejemplo: 5.5)"); ladoB = Convert.ToDouble(Console.ReadLine(), CultureInfo.InvariantCulture); resultado = ladoA * ladoB; // Usamos la interpolación de strings ($"") que es más limpia que usar muchos símbolos de "+" Console.WriteLine($"El lado A es {ladoA.ToString(CultureInfo.InvariantCulture)} " + $"El lado B es {ladoB.ToString(CultureInfo.InvariantCulture)} " + $"El resultado es {resultado.ToString(CultureInfo.InvariantCulture)}");
yeferson hernan duran suarez
Hola tengo un problema lo que pasa es que cuando ejecuto ya el código el resultado final da el numero entero y no detecta los decimales solo lo detecta si pongo la coma, con punto no me deja saben porque es ?
Alan Warden
Depende de la configuración regional de tu sistema operativo. Por ejemplo: el formato regional de España usa la coma para delimitar los decimales, la anglosajona es con un punto.
Puedes cambiar tu configuración regional desde la configuración de Windows para reloj y región.
++LA PALABRA RESERVADA VAR++
La palabra clave var permite declarar una variable local (dentro de un método o un bucle) sin indicar explícitamente el tipo de datos - en cambio, el compilador de C# infiere el tipo desde la parte derecha de la declaración.
++¿Cuándo usar var en C#?++ Puedes usar var en cualquier momento en que la inicialización de la variable te indica claramente qué valores contendrá la variable.
Ten en cuenta que, en todos estos casos, los nombres de las variables deben ser descriptivos y el inicializador debe ser claro. También pluraliza enumeraciones y arreglos.
++Ejemplos++ Por ejemplo, lo siguiente declara una variable e inicializa su valor como una cadena de texto:
string message = "Hola";
En este ejemplo, usamos el tipo string para la variable message al comienzo de la declaración y una cadena de texto como valor inicial. La variable message es de tipo explícito.
Sin embargo, a partir del valor "Hola", el compilador puede inferir la variable como una cadena. Por lo tanto, el tipo explícito al comienzo de la declaración es redundante.
Para evitar esta redundancia, puedes usar la palabra clave var en lugar del tipo explícito al comienzo de la declaración de la variable de esta manera:
var message = "Hola";
En este ejemplo, el message es una variable de tipo implícito.
La palabra clave var no indica un tipo especial de variable. Es una forma abreviada sintáctica de cualquier tipo que el compilador pueda inferir a partir de la inicialización de una declaración de variable.
En el ejemplo anterior, var es la abreviatura del tipo string.
Una vez que el compilador puede inferir el tipo de la variable, es fijo e inmutable. Por ejemplo, no puedes asignar un número entero a la variable message de esta manera:
var message = "Hola"; message = 100; // error
C# solo permite usar la palabra clave var con una variable que incluye una inicialización. Lo siguiente resultará en un error:
var amount; Error: Implicitly typed variables must be initialized
++Resumen++ Utiliza la palabra clave var para una variable con inicialización a partir de la cual el compilador pueda inferir un tipo. Las variables, que se declaran con la palabra clave var, son variables de tipo implícito.