Usos y explicación de var en C#

Ejemplos de var en C#. Cuándo usar, cómo usar y razones para usar.

A partir de la versión 3 de C# se puede usar la palabra reservada var, que me recuerda un poco a Kotlin, Go, y JavaScript.

En este post te voy a mostrar cómo usar var, cuál es su propósito, cuándo usarla y cuándo no.

Uso de var en C#

Usamos var cuando deseamos declarar una variable pero no queremos indicar el tipo de dato, y dejamos que el compilador lo infiera. Algo así como el duck typing.

Ya que declarar así:

int edad = 5;

Es lo mismo que:

var edad = 5;

Veamos el ejemplo. Con var en C# es así:

using System;

class MainClass {
  public static void Main (string[] args) {
    var edad = 5;
    Console.WriteLine(edad);
  }
}

Y cuando ponemos el tipo (int), también funciona:

using System;

class MainClass {
  public static void Main (string[] args) {
    int edad = 5;
    Console.WriteLine(edad);
  }
}

Por lo tanto, hablando del lenguaje (y no de los paradigmas o buenas prácticas) es lo mismo declarar con var que con el tipo de dato, ya que el compilador infiere el tipo a partir del valor.

Restricciones de var

Aunque parezca que gracias a var se pierde el tipado fuerte de C# la realidad es que no, ya que el compilador infiere el tipo, y le asigna el tipo a esa variable pero más tarde ya no se puede cambiar.

Es decir, lo siguiente es erróneo:

var nombre = "Luis";

nombre = 3;

Ya que nombre, aunque fue declarado con var, es un string.

Otra restricción es que cuando usamos var debemos declarar inmediatamente el valor, no podemos dejarla declara así:

var nombre;

¿Cuándo usar var en c#?

Ahora sí dejamos la parte técnica y vamos a los paradigmas. Recomiendo usar var cuando se declare una variable local y simple. Por ejemplo:

var nombre = "Luis";

Y recomiendo evitarlo cuando el tipo no se pueda inferir por el ser humano. Por ejemplo:

var ubicacion = usuario.obtenerUbicacion();

Ahí, aunque estamos obteniendo la ubicación de un usuario, ¿qué tipo de dato estamos recibiendo? ¿Es un objeto de tipo LatitudLongitud? ¿Son las coordenadas como cadena? ¿No es la ubicación GPS?

Para el caso de arriba, suponiendo que es la latitud y longitud de las coordenadas, podríamos hacer esto:

LatitudLongitud ubicacion = usuario.obtenerUbicacion();

Y en el peor de los casos, si queremos usar var forzosamente, al menos deberíamos escribir un nombre descriptivo. Por ejemplo:

var latitudLongitudUsuario = usuario.obtenerUbicacion();

Conclusión

En conclusión usar var cuando sean variables sencillas, fáciles de inferir por el ser humano y no ambiguas.

No te preocupes, usar var no hará que haya errores de programación, pues el compilador seguirá funcionando como siempre.

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto