Quand j'ai vu pour la première fois LINQ, j'ai sauté au plafond en voyant l'utilisation du mot clé var pour déclarer une variable, au lieu d'indiquer son type.
Pour un langage typé comme C#, c'était surprenant de voir un tel laxisme. Eh bien il ne s'agit pas de laxisme: contrairement à VB 6, par exemple, où var représentait une variable quelconque, c'est le compilateur qui détecte en C# le typage correspondant à la variable (d'après le contexte) et qui la type fortement. Voir le code ci-après pour un exemple (merci Scott Guthrie):
Bien sûr, ce peut être source d'erreurs, mais probablement pas aussi graves qu'avec un typage "late-bound".
Pour en savoir plus, allez voir l'excellent article de Scott Guthrie à ce sujet.
Pour ceux qui voudraient l'équivalent du var de VB6 ou du void* de C++, il reste bien sûr le object de C#, mais attention au boxing avec les types valeur!
Comments