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

Acabei de começar a usar o ReSharper com o Visual Studio (depois das muitas recomendações sobre o SO). Para experimentar, abri um projeto recente do ASP.NET MVC. Uma das primeiras e mais frequentes coisas que eu notei é sugerir que mude a maioria / todas as minhas declarações explícitas paravar em vez de. Por exemplo:

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

e assim por diante, mesmo com tipos simples comoint, booletc.

Por que isso é recomendado? Eu não venho de uma ciência da computação ou de um background em .NET, tendo "caído" no desenvolvimento .NET recentemente, então eu realmente gostaria de entender o que está acontecendo e se é benéfico ou não.

questionAnswers(23)

yourAnswerToTheQuestion