Why does ReSharper want to use 'var' for everything?

Acabo de empezar a usar ReSharper con Visual Studio (después de las muchas recomendaciones sobre SO). Para probarlo, abrí un proyecto reciente de ASP.NET MVC. Una de las primeras y más frecuentes cosas que he notado que sugiere es cambiar la mayoría / todas mis declaraciones explícitas avar en lugar. Por ejemplo:

//From This:
MyObject foo = DB.MyObjects.SingleOrDefault(w => w.Id == 1);
//To This:
var foo = DB.MyObjects.SingleOrDefault(w => w.Id == 1);

Y así sucesivamente, incluso con tipos simples comoint, bool, etc.

¿Por qué se recomienda esto? No provengo de un área de ciencias de la computación o de .NET, después de haber "caído en" el desarrollo de .NET recientemente, por lo que realmente me gustaría entender qué está pasando y si es de beneficio o no.

Respuestas a la pregunta(23)

Su respuesta a la pregunta