C#
- Como funciona a palavra chave var ?
![]() |
A partir da versão 3.0 do Visual C# as variáveis que forem declaradas no escopo do método podem possuir um tipo implícito var. |
A palavra-chave var instrui o compilador para deduzir o tipo da variável da expressão no lado direito da instrução de inicialização. O tipo inferido pode ser um tipo interno, um tipo anônimo, um tipo definido pelo usuário ou um tipo definido na biblioteca de classes do NET Framework.
Dessa forma as declarações a seguir são equivalentes:
int x = 0;
var x = 0 ;
A seguir temos alguns exemplos que mostram várias maneiras de declarar variáveis locais usando var:
![]() |
A palavra-chave var é uma maneira implícita ou indireta de definir tipos de dados ou tipos de variáveis.
Observando os dados no lado direito, o lado esquerdo faz a definição do tipo de dados através do compilador durante a geração do código IL.
![]() |
Na declaração acima a variável x esta sendo definida explicitamente como sendo do tipo int.
![]() |
Na declaração acima a variável y esta sendo definida implicitamente usando a palavra-chave var.
Quando usamos var a definição é feita estaticamente e não em tempo de execução.
É importante entender que palavra-chave var não significa "variante" e não indica que a variável é fracamente tipada ou vinculada tardiamente. Apenas significa que o compilador determina e atribui o tipo mais apropriado.
O palavra-chave var pode ser usado nos seguintes contextos:
1- Em variáveis locais (variáveis declaradas no escopo do método) conforme mostrado no exemplo anterior;
2- Em uma instrução de inicialização for;
for(var x = 1; x < 10; x++)
3- Em uma instrução de inicialização foreach;
foreach(var item in list){...}
4- Em uma instrução using;
using (var file = new StreamReader("C:\\arquivo.txt")) {...}
Em muitos casos a utilização de var é opcional e torna-se apenas uma questão de conveniência. Porém quando a variável é inicializada com um tipo anônimo devemos usar a palavra-chave var se precisarmos acessar as propriedades do objeto posteriormente.
Vamos mostrar como e porque isso é feito...
Vamos abrir o Visual C# 2010 Express Edition e crie uma aplicação do tipo Console Application com o nome Usando_Var;
A seguir vamos definir o seguinte código no método Main():
![]() |
O código acima usa var para definir a variável m como sendo do tipo int. Isso é feito de forma implícita quando o compilador analisa o lado direito da atribuição.
Vamos agora atribuir um valor a variável m conforme abaixo :
![]() |
Quando atribuímos o valor "Macoratti" à variável m ao compilar o programa obtemos a seguinte mensagem de erro: Cannot implicitly convert type 'string' to 'int'
Assim constatamos que a variável i é do tipo int e que isto foi declarado implicitamente pela declaração anterior.
![]() |
A utilização de var fornece dois importantes usos:
1- Quando você tem nomes longos para classes no seu código usando var o código fica mais curto e legível;
![]() |
2- Quando você esta usando LINQ e os tipos anônimos a palavra-chave var reduz o seu código para criar classes especiais;
a- Sem usar var
![]() |
Neste exemplo tivemos que definir uma classe para criar as variáveis de forma que Length é atribuído a variável Tamanho e x é atribuída a variável Valor;b- Usando var
![]() |
Agora podemos ver que não temos que definir uma nova classe para criar as variáveis Tamanho e Valor; os objetos estão sendo criados com a mesma tipagem;
c- Uso opcional de var
![]() |
O tipo esta explicitamente definido como string e não precisamos usar var.
d- Uso obrigatório de var
![]() |
Temos um tipo anônimo e por isso devemos usar var.
As seguintes restrições se aplicam às declarações de variáveis digitada implicitamente:
João 8:34
Replicou-lhes Jesus: Em verdade, em verdade vos digo que todo aquele que comete pecado é escravo do pecado.
DVDs com
programas para estudo e Cursos de VB .NET e C#
Visite a loja
on-line para ver todos os cursos :
Loja do
Macoratti.net |
Referências: