Da MSDN :
However, the use of var does have at
least the potential to make your code
more difficult to understand for other
developers. For that reason, the C#
documentation generally uses var only
when it is required.
Davvero, davvero non mi piace la digitazione implicita. In superficie tende a rendere il codice più leggibile, ma può portare a molti problemi lungo la strada. Se un dev cambia un inizializzatore di variabile, ad esempio da
var myFloat=100f;
a
var myFloat=100;
o
var myFloat=100.0;
Il tipo cambierà, causando un gran numero di errori del compilatore o, se si trova in una visualizzazione Web e non si sta utilizzando la fase post-compilazione per precompilare le visualizzazioni, un'intera serie di errori di runtime che non saranno catturato senza efficaci test di pre-distribuzione.
Anche la digitazione implicita non funziona ovunque (dallo stesso link MSDN)
var can only be used when a local
variable is declared and initialized
in the same statement; the variable
cannot be initialized to null, or to a
method group or an anonymous function.
var cannot be used on fields at class
scope.
Variables declared by using var cannot
be used in the initialization
expression. In other words, this
expression is legal: int i = (i = 20);
but this expression produces a
compile-time error: var i = (i = 20);
Multiple implicitly-typed variables
cannot be initialized in the same
statement.
If a type named var is in scope, then
the var keyword will resolve to that
type name and will not be treated as
part of an implicitly typed local
variable declaration.
Mantenere il proprio codice coerente (in questo caso, utilizzando la tipizzazione esplicita in tutto il mondo) è una cosa molto, molto buona. A mio parere, var
è pigro e non fornisce alcun vantaggio reale e introduce un altro potenziale punto di errore in un processo già complesso.
Aggiornamento 2017
Ho completamente cambiato idea. Quando lavoro in C #, uso var
la maggior parte delle volte (eccetto cose come variabili di tipo interfaccia e simili). Mantiene il codice terso che migliora la leggibilità. Tuttavia, però, prestate attenzione a ciò che è realmente il tipo risolto.