C# 3.0 variáveis tipo var

Desmitificando o c# 3.0 keyword var

No c# 2.0 você podia declarar um integer (ou qualquer outro tipo conhecido)como

int i;

Você também podia escrever algo assim:

int i  = 1;

Ou seja:

<tipo><nomevariavel> = <inicializador>;

Ok,bom.A coisa importante pra se notar é que “i” é um inteiro.Em c# 3.0 o código abaixo é válido:

var i = 1;

Mas o que é “var”?”var” é…hum…uma palavra chave,que resulta em “i” sendo do mesmo tipo do inicializador,nesse caso um inteiro.Então var i = 1;irá resultar em uma variável chamada “i” cujo tipo é integer.

Mas qual a diferença entre “var”,object, e variant(VB6)?

Variants eram tranqueiras,que aceitavam praticamente tudo,ocupando bastante espaço na memória.Objects tem problemas de box e unboxing.E variants e objects ambos não são fortemente tipados.

Note que “i”,é um tipo fortemente tipado para integer – não é nem um objeto nem uma variant,nem carrega os problemas de nenhuma das duas.Para garantir a natureza fortemente tipada que é declarada na palavra chave var, c# 3.0 requer que você ponha no inicializador,na mesma linha da declaração.Também,o inicializador deve ser uma expressão,não um objeto ou coleção,e também não pode ser null.

Você também pode criar arrays de var:

var intArr = new[] {3,1,4,1,5} ;

Espero que tenham entendido,até a próxima!

Anúncios