De MSDN :
Sin embargo, el uso de var tiene al menos el potencial de hacer que su código sea más difícil de entender para otros desarrolladores. Por esa razón, la documentación de C # generalmente usa var solo cuando es necesario.
Realmente, realmente no me gusta la escritura implícita. En la superficie, tiende a hacer que el código sea más legible, pero puede generar muchos problemas en el futuro. Si un desarrollador cambia un inicializador variable, digamos, de
var myFloat=100f;
a
var myFloat=100;
o
var myFloat=100.0;
El tipo cambiará, lo que dará como resultado una gran cantidad de errores del compilador o, si está en una vista web y no está utilizando el paso posterior a la compilación para precompilar sus vistas, una gran cantidad de errores de tiempo de ejecución que no se detectarán sin una efectiva pruebas previas a la implementación.
La escritura implícita tampoco funciona en todas partes (desde el mismo enlace de MSDN)
var solo se puede usar cuando una variable local se declara e inicializa en la misma instrucción; la variable no se puede inicializar a nulo, a un grupo de métodos o una función anónima.
var no se puede usar en campos en el ámbito de clase.
Las variables declaradas mediante el uso de var no se pueden usar en la expresión de inicialización. En otras palabras, esta expresión es legal: int i = (i = 20); pero esta expresión produce un error en tiempo de compilación: var i = (i = 20);
Múltiples variables tipadas implícitamente no se pueden inicializar en la misma declaración.
Si un tipo llamado var está dentro del alcance, la palabra clave var se resolverá con ese nombre de tipo y no se tratará como parte de una declaración de variable local tipada implícitamente.
Mantener un código coherente (en este caso, usar una escritura explícita en todas partes) es algo muy, muy bueno. En mi opinión, var
es flojo y no proporciona ningún beneficio real, e introduce otro punto potencial de falla en un proceso ya complejo.
Actualización 2017
Cambié completamente de opinión. Cuando trabajo en C #, lo uso la var
mayor parte del tiempo (excepto cosas como variables de tipo interfaz y tal). Mantiene el código conciso que mejora la legibilidad. Aún así, preste atención a cuál es realmente el tipo resuelto.