Je regarde le prochain Visual Studio 2017 .
Sous la section intitulée Productivité boostée , une image de Visual Studio est utilisée pour remplacer toutes les occurrences de var par le type explicite.
Le code présente apparemment plusieurs problèmes que Visual Studio a identifiés comme «nécessitant une correction».
Je voulais vérifier ma compréhension de l'utilisation de var en C # alors j'ai lu un article de 2011 par Eric Lippert intitulé Uses and abuse of typ implicit .
Eric dit:
- Utilisez var quand vous devez; lorsque vous utilisez des types anonymes.
- Utilisez var lorsque le type de la déclaration est évident à partir de l'initialiseur, surtout s'il s'agit d'une création d'objet. Cela élimine la redondance.
- Envisagez d'utiliser var si le code met l'accent sur le «but commercial» sémantique de la variable et minimise les détails «mécaniques» de son stockage.
- Utilisez des types explicites si cela est nécessaire pour que le code soit correctement compris et maintenu.
- Utilisez des noms de variables descriptives, que vous utilisiez ou non «var». Les noms de variable doivent représenter la sémantique de la variable, pas les détails de son stockage; «DecimalRate» est mauvais; «InterestRate» est bon.
Je pense que la plupart de l' utilisation de var dans le code est probablement correcte. Je pense que ce serait ok de ne pas utiliser var pour le bit qui lit ...
var tweetReady = workouts [ ... ]
... parce que ce n'est peut-être pas 100% immédiat de quel type il s'agit mais même alors je sais assez rapidement que c'est un boolean
.
L' utilisation var pour cette partie ...
var listOfTweets = new List<string>();
... me semble exactement comme une bonne utilisation de var car je pense qu'il est redondant de faire ce qui suit:
List<string> listOfTweets = new List<string>();
Bien que basée sur ce qu'Eric dit, la variable devrait probablement être des tweets plutôt que listOfTweets .
Quelle serait la raison de changer la totalité de l' var
utilisation ici? Y a-t-il un problème avec ce code qui me manque?
var
ici vont bien. Vous pourriez éventuellement en changer un - mais même dans ce cas, je pense que ce n'est pas vraiment nécessaire. Pourquoi les changer tous en type explicite?
vars
ont été marqués de la même manière; avec la même croix de mise en garde à côté d'eux et un soulignement rouge. On peut supposer que Visual Studio souhaite les corriger tous de la même manière. A moins que je ne me trompe.