Estou olhando para o próximo Visual Studio 2017 .
Na seção intitulada Produtividade Aumentada, há uma imagem do Visual Studio sendo usada para substituir todas as ocorrências de var pelo tipo explícito.
Aparentemente, o código tem vários problemas que o Visual Studio identificou como 'precisa ser corrigido'.
Queria verificar novamente meu entendimento sobre o uso de var no C #, então li um artigo de 2011 de Eric Lippert chamado Usos e mau uso da digitação implícita .
Eric diz:
- Use var quando for necessário; quando você estiver usando tipos anônimos.
- Use var quando o tipo de declaração for óbvio no inicializador, especialmente se for uma criação de objeto. Isso elimina redundância.
- Considere usar var se o código enfatizar a “finalidade comercial” semântica da variável e diminuir os detalhes “mecânicos” de seu armazenamento.
- Use tipos explícitos se isso for necessário para que o código seja entendido e mantido corretamente.
- Use nomes descritivos de variáveis, independentemente de você usar “var”. Os nomes de variáveis devem representar a semântica da variável, não os detalhes de seu armazenamento; "DecimalRate" está incorreto; "InterestRate" é bom.
Eu acho que a maior parte do uso de var no código provavelmente está ok. Eu acho que seria bom não usar var para o bit que lê ...
var tweetReady = workouts [ ... ]
... porque talvez não seja 100% imediato de que tipo, mas mesmo assim eu sei rapidamente que é um boolean
.
O uso de var para esta parte ...
var listOfTweets = new List<string>();
... parece-me exatamente como o bom uso de var, porque acho que é redundante fazer o seguinte:
List<string> listOfTweets = new List<string>();
Embora com base no que Eric diz, a variável provavelmente deve ser tweets em vez de listOfTweets .
Qual seria o motivo para alterar todo o var
uso aqui? Há algo errado com esse código que estou perdendo?
var
aqui são bons. Você poderia mudar uma - mas mesmo assim acho que não é realmente necessário. Por que alterá-los todos para o tipo explícito?
vars
foram marcados da mesma maneira; com a mesma marca cruzada de advertência ao lado deles e um sublinhado vermelho. Presumivelmente, o Visual Studio deseja corrigi-los da mesma maneira. A menos que eu esteja enganado.