Variáveis do tipo implícito (Implicitly Typed Variables) [C#]

Variáveis locais podem ser declaradas com o “tipovar ao invés de um tipo explícito. São as variáveis do tipo implícito. A palavra chave var instrui o compilador para inferir o tipo da variável resultante da expressão do lado direito da instrução de inicialização. O tipo da variável inferida pode ser um tipo primitivo, um tipo anônimo, um tipo definido pelo usuário ou um tipo definido pela biblioteca de classes do .NET Framework.

 

Variáveis do tipo implícito

Os exemplos seguintes mostram várias maneiras de se declarar variáveis do tipo implícito com a palavra chave var:

 

É importante entender que a palavra chave var não significa “variante”, tampouco indica que a variável é “tipada“ tardiamente. Apenas significa que o compilador determina e atribui o tipo mais apropriado.

A palavra chave var pode ser utilizada nos seguintes contextos:

  • Em variáveis locais (variáveis declaradas no escopo do método) como visto no exemplo anterior;
  • Na inicialização de uma estrutura for.

 

 

  • Na inicialização de uma estrutura foreach;

 

 

  • Na instrução using;

 

 

var e tipos anônimos

Em muitos casos o uso de var é opcional e apenas uma conveniência de sintaxe. Entretanto, quando uma variável é inicializada com um tipo anônimo você deve declarar a variável com var se precisar acessar as propriedades do objeto depois. Este é um cenário comum em expressões de pesquisas LINQ.

Da perspectiva do código fonte, um tipo anônimo não tem nome. Entretanto, se uma variável de pesquisa foi inicializada com var, a única maneira de acessar propriedades numa sequência de objetos retornada é usar o tipo var na variável de iteração da instrução foreach.

 

 

Observações

Declarações de variáveis do tipo implícito possuem algumas restrições, que veremos a seguir.

Var pode apenas ser utilizada quando uma variável local é declarada e inicializada na mesma instrução; a variável não pode ser inicializada com nulo ou para um grupo de métodos ou uma função anônima.

Var não pode ser utilizada em campos no escopo da classe.

Variáveis declaradas com var não podem ser utilizadas na inicialização de uma expressão. Em outras palavras, a expressão abaixo é válida:

mas esta provoca um erro em tempo de compilação:

Múltiplas variáveis implicitamente “tipadas” não podem ser inicializadas na mesma instrução.

Var também é útil em expressões de pesquisa onde seja difícil de determinar o tipo exato da variável. Isto pode ocorrer com operações de agrupamento e ordenação.

Podemos usar var quando especificar o tipo da variável for trabalhoso ou óbvio demais, ou ainda quando não ajuda a melhorar a leitura do código. Um exemplo onde var ajuda desta maneira são nos tipos aninhados de tipos genéricos como a utilizada em operações de grupo. Veja abaixo uma pesquisa onde o tipo é

Enquanto você e outros que farão a manutenção do código entenderem isso, não há problema em usar tipos implícitos por conveniência e para ser breve.

 

 

Palavras finais

Declarar variáveis do tipo implícito com a palavra chave var indica ao compilador que ele deve inferir que o tipo a ser utilizado na variável será o resultado da expressão do lado direito do sinal de atribuição = (igual).

Var não quer dizer variante. Devemos sempre inicializar uma variável deste tipo.

Entretanto o uso de var tem potencial de deixar seu código mais difícil de ler por outros desenvolvedores. Por esta razão, a documentação C# normalmente utiliza var somente quando necessário.

E para receber um aviso quando os próximos artigos forem publicados, se cadastre na lista VIP do Celso.

Comece pelo e-book GRATUITO

5 Passos Para Ser Um App Dev

Se você não sabe por onde começar, este e-book te mostra os passos para ser um desenvolvedor de aplicativos de sucesso.
100% livre de spam.

Para enviar seu comentário, preencha os campos abaixo:

Deixe uma resposta

*

Seja o primeiro a comentar!