A vrai dire les deux syntaxe n'ont pas grand chose à voir.
Si tu déclare une variable de type object et tu mets un int dedans, tu porras toujours mettre dedans par la suite un string ou un concombre.
Si tu déclare var s = "abc"; s est effectivement de type string et ne pourra pas être utilisé pour un autre type.
Bon, le seul interêt est bien sur pour des nom de classe très long.
ThisAHugeNameClassWichIsHereOnlyToFoolUpDeveloppers a = new ThisAHugeNameClassWichIsHereOnlyToFoolUpDeveloppers ():
sera avantageusement remplacé par :
var a = new ThisAHugeNameClassWichIsHereOnlyToFoolUpDeveloppers ();
Le code IL généré sera rigoureusement identique (contrairement au C# 2.0 qui est différent du 1.0, le 3.0 est un simple preprocessing qui est ensuite compilé vers un IL 2.0).
De toute maniére, ce var n'est pas un point très intéressant.
Partager