0Pricing
C# Academy · Lección

Inferencia de tipos de variables locales con var

Utilice var cuando el tipo sea evidente.

Inferencia de tipos de variables locales con var es una lección gratuita de C# Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C# Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C# Academy incluye 4 lecciones en total.

¿Qué es var?

var permite que el compilador infiera el tipo de una variable local a partir del inicializador. La variable sigue teniendo un tipo estático y fuertemente tipado en tiempo de compilación.

using System;

class Program {
    static void Main() {
        var count = 10;
        Console.WriteLine(count);
    }
}

var no es dynamic

var se resuelve en tiempo de compilación. var x = 10 es exactamente un int y después no puede contener una cadena.

using System;

class Program {
    static void Main() {
        var name = "Ada";
        Console.WriteLine(name.GetType().Name);
    }
}

Inferencia a partir de literales

El compilador lee el literal para elegir el tipo: 1 es int, 1.5 es double y "hi" es string.

using System;

class Program {
    static void Main() {
        var a = 1;
        var b = 1.5;
        var c = "hi";
        Console.WriteLine(a.GetType().Name + " " + b.GetType().Name + " " + c.GetType().Name);
    }
}

El inicializador es obligatorio

Como el tipo procede del inicializador, las variables var deben recibir un valor al declararse.

using System;

class Program {
    static void Main() {
        var total = 0;
        for (int i = 1; i <= 4; i++) total += i;
        Console.WriteLine(total);
    }
}

var con tipos evidentes

var resulta especialmente útil cuando el lado derecho ya indica el tipo, como en una llamada a un constructor. Evita repetir información.

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        var list = new List<int> { 1, 2, 3 };
        Console.WriteLine(list.Count);
    }
}

var con resultados de métodos

Puede usar var para valores devueltos cuando el nombre del método deja claro cuál es el tipo.

using System;

class Program {
    static int Square(int n) { return n * n; }
    static void Main() {
        var result = Square(6);
        Console.WriteLine(result);
    }
}

var en foreach

var resulta práctico en bucles foreach sobre colecciones cuyos tipos de elemento se conocen.

using System;

class Program {
    static void Main() {
        var names = new[] { "Sam", "Lee" };
        foreach (var n in names)
            Console.WriteLine(n);
    }
}

Matrices inferidas

Una matriz con tipo implícito new[] { ... } infiere el tipo de sus elementos a partir de los valores.

using System;

class Program {
    static void Main() {
        var nums = new[] { 10, 20, 30 };
        Console.WriteLine(nums.Length);
    }
}

var sigue siendo seguro en cuanto a tipos

Como el tipo es fijo, asignar después un tipo incorrecto provoca un error de compilación, igual que en una declaración explícita.

using System;

class Program {
    static void Main() {
        var x = 5;
        x = 10;
        Console.WriteLine(x);
    }
}

var y los tipos anónimos

var es obligatorio para los tipos anónimos porque no tienen un nombre que pueda escribir.

using System;

class Program {
    static void Main() {
        var point = new { X = 3, Y = 4 };
        Console.WriteLine(point.X + ", " + point.Y);
    }
}

Ventaja de legibilidad

Si se usa correctamente, var reduce el ruido y mantiene el código alineado, especialmente con nombres de tipos genéricos largos.

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        var scores = new Dictionary<string, int> { ["Ann"] = 90 };
        Console.WriteLine(scores["Ann"]);
    }
}

Comprobación rápida

Compruebe su comprensión de var.

Resumen

var indica al compilador que infiera el tipo de una variable local a partir de su inicializador, por lo que la variable sigue teniendo un tipo estático y fijo en tiempo de compilación, a diferencia de dynamic.

Requiere un inicializador, elimina nombres de tipos redundantes y es obligatorio para los tipos anónimos. Mejora la legibilidad cuando el tipo ya es evidente.

Preguntas frecuentes

¿La lección «Inferencia de tipos de variables locales con var» es gratis?

Sí — el texto completo de «Inferencia de tipos de variables locales con var» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C# Academy, actualiza a CoddyKit PRO. El curso de C# Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Inferencia de tipos de variables locales con var»?

Utilice var cuando el tipo sea evidente. Practicas C# Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar C# Academy?

No se requiere experiencia previa. C# Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Inferencia de tipos de variables locales con var»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de C# Academy?

Sí. Cada lección de C# Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Inferencia de tipos de variables locales con var
  2. Cuándo evitar var
  3. El tipo dynamic
  4. Expresiones new con tipo de destino
← Volver a C# Academy