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
- Inferência de tipo de variável local com var
- Quando evitar var
- O tipo dynamic
- Expressões new com tipo de destino