0Pricing
C# Academy · Aula

Inferência de tipo de variável local com var

Use var quando o tipo for evidente.

Inferência de tipo de variável local com var é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C# Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C# Academy inclui 4 aulas no total.

O que é var?

var permite que o compilador infira o tipo de uma variável local a partir do inicializador. A variável continua fortemente tipada em tempo de compilação.

using System;

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

var não é dynamic

var é resolvido em tempo de compilação. var x = 10 é exatamente um int e não pode armazenar uma cadeia de caracteres depois.

using System;

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

Inferência a partir de literais

O compilador lê o literal para escolher o tipo: 1 é int, 1.5 é double, "hi" é uma cadeia de caracteres.

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);
    }
}

O inicializador é obrigatório

Como o tipo vem do inicializador, as variáveis var precisam receber um valor quando são declaradas.

using System;

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

var com tipos óbvios

var é especialmente útil quando o lado direito já informa o tipo, como em uma chamada de construtor. Ele evita repetição.

using System;
using System.Collections.Generic;

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

var com resultados de métodos

Você pode usar var para valores retornados quando o nome do método deixa o tipo claro.

using System;

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

var em foreach

var é prático em laços foreach sobre coleções com tipos de elemento conhecidos.

using System;

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

Matrizes inferidas

Uma matriz com tipo implícito new[] { ... } infere o tipo de seus elementos a partir dos valores.

using System;

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

var continua seguro quanto ao tipo

Como o tipo é fixo, atribuir posteriormente um tipo incorreto causa uma falha na compilação, assim como em uma declaração explícita.

using System;

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

var e tipos anônimos

var é obrigatório para tipos anônimos, pois eles não têm um nome que você possa escrever.

using System;

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

Benefício para a legibilidade

Quando usado corretamente, var reduz o excesso de informação e mantém o código alinhado, especialmente com nomes longos de tipos genéricos.

using System;
using System.Collections.Generic;

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

Verificação rápida

Teste sua compreensão de var.

Recapitulação

var instrui o compilador a inferir o tipo de uma variável local a partir de seu inicializador; assim, a variável permanece fortemente tipada e fixa em tempo de compilação, ao contrário de dynamic.

Ele exige um inicializador, remove nomes de tipos redundantes e é obrigatório para tipos anônimos. Melhora a legibilidade quando o tipo já é óbvio.

Perguntas Frequentes

A aula “Inferência de tipo de variável local com var” é grátis?

Sim — o texto completo de “Inferência de tipo de variável local com var” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C# Academy, atualize para CoddyKit PRO. O curso de C# Academy inclui 4 aulas no total.

O que vou aprender em “Inferência de tipo de variável local com var”?

Use var quando o tipo for evidente. Você pratica C# Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C# Academy?

Nenhuma experiência prévia é necessária. C# Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Inferência de tipo de variável local com var”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C# Academy?

Sim. Cada aula de C# Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Inferência de tipo de variável local com var
  2. Quando evitar var
  3. O tipo dynamic
  4. Expressões new com tipo de destino
← Voltar para C# Academy