This article has been localized into Portuguese by the community.
Variáveis locais de tipo implícito (a palavra-chave var)
A partir do C # versão 3.0, você pode usar a palavra-chave var no lado esquerdo de uma declaração de variável, em vez de declarar explicitamente o tipo da variável. Isso só é possível dentro de um método - não no nível da classe, onde você sempre precisa especificar o tipo. Vamos ver como fica quando você usa a palavra-chave var:
int age = 42; // Explicitly typed variable
var name = "John Doe"; // Implicitly typed variable
Duas variáveis - aquela é declarada com o tipo int, enquanto a outra é declarada com a palavra-chave var, em vez de especificá-la como uma string. Observe que estou atribuindo um valor em ambos os casos, porque, embora isso não seja necessário ao declarar um tipo, ele é necessário ao usar a palavra-chave var. A razão é que o compilador C # inferirá o tipo da parte direita da instrução - ele simplesmente analisa o que você está tentando atribuir à variável durante a compilação e, em seguida, altera a palavra-chave var para o tipo apropriado.
Isso também significa que não há sobrecarga ao usar a palavra-chave var - é tão rápido durante o tempo de execução quanto uma variável explicitamente declarada, porque é essencialmente o que é quando o .NET framework executa seu código.
Nosso primeiro exemplo é muito trivial - não há muito tempo economizado escrevendo "var" em vez de "string". No entanto, às vezes você estará declarando tipos muito mais complexos, como uma nova variável ou como o resultado local de uma função (definida pelo usuário ou da estrutura). Há uma chance de salvar uma quantidade razoável de pressionamentos de tecla em um exemplo como este:
Dictionary<int, List<string>> dict1 = new Dictionary<int, List<string>>();
var dict2 = new Dictionary<int, List<string>>();
O resultado será exatamente o mesmo, mas você definitivamente salva alguns pressionamentos de teclas no último exemplo, e desde que você especificou o tipo no lado direito em ambos os casos, praticamente não há perda na legibilidade do seu código ao usar o var palavra-chave em um exemplo como este.
Você também pode usar a palavra-chave var ao declarar uma variável local como resultado de uma chamada de método:
var s = DateTime.Now.ToString();
Novamente, é mais rápido e ainda está bem claro o que acontece e qual tipo a variável manterá (uma string). Isso pode não estar em um caso como esse:
var myVar = SomeMethodWithANameWhichDoesntIndicateTheReturnType();
Em uma situação como essa, não está claro em absoluto o que a variável conterá e você pode estar sacrificando a legibilidade do seu código. Você pode querer considerar o uso de uma variável explicitamente tipada aqui.
A var Palavra-chave & amp; Tipos anônimos
Até agora, os exemplos que vimos com a palavra-chave var foram principalmente do departamento "açúcar sintático" - eles são bons de ter e mais curtos para digitar, mas não são realmente um requisito. No entanto, ao trabalhar com tipos anônimos (mais sobre eles posteriormente), faz sentido declarar seus objetos com a palavra-chave var:
var myObj = new
{
Name = "John Doe",
Age = 42
};
Console.WriteLine(myObj.Name);
Nesse caso, você realmente precisa da palavra-chave var para acessar posteriormente os campos do tipo anônimo, conforme mostrado neste exemplo.
Resumo
A palavra-chave var permite que você declare uma variável local (dentro de um método ou loop) sem declarar explicitamente o tipo - em vez disso, o compilador C # infere o tipo da parte direita da declaração. Isso pode ser muito conveniente em muitas situações, mas também pode tornar seu código um pouco menos legível. Você pode usá-lo, ou manter explicitamente declarando os tipos de variáveis - o que você preferir, mas você precisa dele para tipos anônimos, como já explicado.