Entender cómo manejar correctamente las variables es crucial en la programación. En C#, la declaración implícita con var simplifica el proceso de indicar el tipo de dato, permitiendo que el código sea más limpio y fácil de leer. En vez de especificar el tipo explícitamente, el compilador deduce el tipo de la variable a partir del valor con el que se inicializa.
¿Cómo funciona var?
Inicialización Obligatoria: Cuando se utiliza var, es necesario inicializar la variable al mismo tiempo que se declara. Este detalle permite al compilador identificar el tipo de dato que se está manejando.
var resultado =1.1;// El compilador deduce que 'resultado' es de tipo double
Deducción Automática del Tipo: C# realiza la deducción del tipo de dato automáticamente. Esto es especialmente útil cuando el tipo de datos es evidente a partir del valor asignado, brindando más flexibilidad en el flujo de trabajo.
¿Cuándo deberías usar var?
El uso de var es ideal cuando:
El tipo de dato es evidente y el contexto del programa no requiere una declaración explícita por motivos de optimización o claridad de memoria.
Se busca mantener un código más limpio y centrarse en la lógica sin preocuparse por cuestiones de tipo no necesarias.
Sin embargo, cuando se requieren optimizaciones específicas, especialmente en aplicaciones que demandan un uso eficiente de memoria, como en la programación de videojuegos o aplicaciones de alta carga, optar por una declaración explícita puede ser preferible.
¿Por qué es importante entender ambos métodos de declaración?
Conocer ambas formas de declarar variables te da más herramientas para adaptar tu código a las necesidades de tu aplicación. Al trabajar en grandes proyectos o sistemas embebidos donde cada mínimo uso de memoria importa, declarar variables explícitamente ayuda a garantizar que la aplicación se ejecute con eficiencia.
Ejemplo en un entorno de trabajo de alto rendimiento
Imagina que estás desarrollando un videojuego 3D. Cada pieza de memoria es valiosa. En un dispositivo con memoria limitada, como el Nintendo Switch, las declaraciones explícitas pueden ayudarte a:
Optimizar Memoria: Usar tipos de datos precisos para controlar el consumo de los recursos.
Control Detallado del Comportamiento: Asegurarte de que las operaciones aritméticas se ejecuten como se espera sin sorpresas de tipo.
Recomendaciones prácticas para los desarrolladores
Elige var cuando trabajes en aplicaciones web: Es el más común y simplifica el código sin sacrificar claridad cuando no hay una restricción grave de recursos.
Opta por la declaración explícita en ambientes embebidos o videojuegos: La optimización de recursos es primordial en estos contextos.
Sé consciente del contexto de uso: Adapta el estilo de declaración de variables según el entorno y las necesidades del proyecto.
Finalmente, ya sea que uses var o la forma explícita, entender y escoger el método adecuado te llevará a escribir código más eficiente y efectivo. ¡Continúa explorando y perfeccionando tus habilidades en programación!
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.
Gracias
Gracias por el aporte caballero!!
Que bueno que en este curso si se le da uso a la palabra reservada var, en el anterior de C# solo se menciono para decir que no es bueno usarla, cuando en verdad es una herramienta que podemos utilizar en c#.
Así es
Lo confundieron con JS jaja
Bueno… por buenas practicas a la hora de trabajar con las variables.
ser explicito.
y a la hora de usar var debemos de inicializar.
mmm... ok.
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
Total
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
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.
se inicializa con 1.1 para que C# entienda que la variable es un flotante y no un número entero
Palabra resrvada var
La palabra reservada "var" en C# se utiliza para declarar variables de tipo "implícito" o "inferencia de tipo".
<aside>
📌 Esto significa que el compilador determina el tipo de la variable en base al valor asignado en la declaración.
</aside>
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".
Gracias por e dato compañero
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}
// ejercicio de sumas:var numero4 =1.0;var numero5 =1.0;varResultadoSuma=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);
"Las variables nos sirven para almacenar información, que vamos utilizar para resolver problemas." cool
Para activar el "Guardado Automático":
Herramientas -> Opciones -> Entorno -> Documentos -> Check en "Guardar archivos automáticamente cuando Visual Studio está en segundo plano"
porque para inicializar las variables se les debe poner 1.1 y no solo 1 o 0, cualquier otro numero.
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.
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 stringvar edad =25;// se infiere que edad es de tipo intvar salario =2000.50;// se infiere que salario es de tipo double
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”);varLadoA=Convert.ToDouble(Console.ReadLine());Console.WriteLine(“Ingresa el valor del lado B”);varLadoB=Convert.ToDouble(Console.ReadLine());varRes=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?
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 cualquieravar 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;
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.
EXplicito es de EXacto, es cuando se define un valor, en caso contrario es implicito
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);
💡¿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 CultureInfoladoA = 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)}");
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 ?
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.