quinta-feira, dezembro 06, 2007

Tipos inferidos pelo compilador

O C# 3.0 possui uma facilidade na declarão das variáveis, essa facilidade se chama de tipo inferido pelo compilador. Agora fica muito mais fácil declarar as variáveis, vc só precisa utilizar a palavra chave var no momento da declaração.

O uso do var não significa que o C# virou uma linguagem não tipada, como uma linguagem de script. Ela apenas facilita a declaração de variáveis, o compilador descobre o seu tipo no momento da sua inicialização. Para isso a declaração e a inicialização precisa ocorrer na mesma linha de código.

Exemplos:

No C# 2.0 vc declarava uma variável assim:

string variavel = "Teste";

No C# 3.0 vc pode declarar assim:

var variavel = "Teste";

Mesmo utilizando var a variável é uma string. Podemos comprovar isso de duas maneiras:

1. Parando com o mouse sobre var mostra que a variável é do tipo System.String.



2. Pela IL gerada pelo compilador C# 3.0

.maxstack 1
.locals init ([0] string variavel)
IL_0000: nop
IL_0001: ldstr "Teste"
IL_0006: stloc.0
IL_0007: ret

O real ganho dos tipos inferidos ocorre quando existe a necessidade de declarar alguma variável para um tipo complexo, por exemplo:

SortedDictionary<string, List> complexo = new SortedDictionary<string, List>();

Com o uso de var a declaração fica assim:



Não podemos esquecer que a declaração e a inicialização deve ocorrer na mesma linha, o código abaixo gera erro de compilação:

var variavel;
variavel = "Teste";

Nenhum comentário: