'var' é sobre ser claro
O principal debate sobre o uso var
ou não da palavra - chave é sobre a legibilidade do código para você e outros desenvolvedores.
Como se você estivesse escrevendo uma história, não há resposta certa definitiva. Mas vamos ver alguns exemplos disso em inglês simples.
Jake disse olá para Bill. Ele não gostou dele, então ele se virou e foi para o outro lado.
Quem foi para o outro lado? Jake ou Bill? Nesse caso, usar os nomes "Jake" e "Bill" é como usar o nome do tipo. E "Ele" e "ele" é como usar a var
palavra - chave. Nesse caso, pode ser mais específico. O exemplo a seguir é muito mais claro.
Jake disse olá para Bill. Jake não gostava de Bill, então ele se virou e foi para o outro lado.
Nesse caso, ser mais específico tornou a frase mais clara. Mas isso nem sempre será o caso. Em alguns casos, ser específico torna mais difícil a leitura.
Bill gosta de livros, então Bill foi à biblioteca e Bill pegou um livro que Bill sempre gostou.
Nesse caso, seria mais fácil ler a frase se usássemos "he" e, em alguns casos, deixássemos seu nome todo junto, o que equivale a usar a var
palavra - chave.
Bill gosta de livros, então ele foi à biblioteca e pegou um livro que ele sempre gostou.
Esses exemplos cobrem a essência, mas não contam a história toda. Nesses exemplos, havia apenas uma maneira de se referir à pessoa. Ou usando seu nome ou usando um termo mais geral como "ele" e "ele".
No caso do código, temos três maneiras de ajudar a adicionar clareza. O tipo, o nome da variável e a atribuição. Pegue esta linha de código, por exemplo:
Person p = GetPerson();
A questão agora é: existem informações suficientes nessa linha de código para ajudá-lo a descobrir o que está acontecendo?
E a seguinte linha de código? Você ainda saberia o que p
significa neste caso:
var p = GetPerson();
Que tal agora:
var p = Get();
Ou agora:
var person = Get();
Ou este:
var t = GetPerson();
Ou isto:
var u = Person.Get();
Se a palavra-chave var
funciona em um determinado cenário depende muito do contexto do código, como o nome das variáveis, classes e métodos. Também depende da complexidade do código e do restante do código ao seu redor.
Pessoalmente, gosto de usar a var
palavra-chave que é mais abrangente para mim na maioria das vezes. Mas também tendem a nomear minhas variáveis após o tipo, para não perder realmente nenhuma informação.
Dito isto, às vezes, dependendo do contexto em que faço exceções, essa é a natureza de qualquer coisa complexa e o software não é nada senão complexo.