TOC

This article has been localized into Portuguese by the community.

Tipos de dados:

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.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!