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.