Da MSDN :
Tuttavia, l'uso di var ha almeno il potenziale per rendere il tuo codice più difficile da capire per altri sviluppatori. Per questa ragione, la documentazione C # usa generalmente var solo quando è richiesta.
Non mi piace davvero, la digitazione implicita. In superficie tende a rendere il codice più leggibile, ma può portare a molti problemi lungo la strada. Se uno sviluppatore cambia un inizializzatore variabile, diciamo, da
var myFloat=100f;
a
var myFloat=100;
o
var myFloat=100.0;
Il tipo cambierà, causando tutta una serie di errori del compilatore o, se è in una visualizzazione Web e non si sta utilizzando il passaggio post-build per precompilare le visualizzazioni, tutta una serie di errori di runtime che non verranno rilevati senza efficacia test pre-implementazione.
Anche la digitazione implicita non funziona ovunque (dallo stesso collegamento MSDN)
var può essere utilizzato solo quando una variabile locale viene dichiarata e inizializzata nella stessa istruzione; la variabile non può essere inizializzata su null, su un gruppo di metodi o su una funzione anonima.
var non può essere utilizzato su campi nell'ambito della classe.
Le variabili dichiarate utilizzando var non possono essere utilizzate nell'espressione di inizializzazione. In altre parole, questa espressione è legale: int i = (i = 20); ma questa espressione produce un errore in fase di compilazione: var i = (i = 20);
Più variabili tipizzate implicitamente non possono essere inizializzate nella stessa istruzione.
Se un tipo denominato var è nell'ambito, la parola chiave var si risolverà in quel nome di tipo e non verrà trattata come parte di una dichiarazione di variabile locale tipizzata in modo implicito.
Mantenere il codice coerente (in questo caso, usando la digitazione esplicita ovunque) è una cosa molto, molto buona. A mio avviso, var
è pigro e non offre 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 la var
maggior parte del tempo (tranne cose come variabili di tipo interfaccia e simili). Mantiene il codice conciso che migliora la leggibilità. Tuttavia, presta attenzione a ciò che è realmente il tipo risolto.