Why does ReSharper want to use 'var' for everything?
.net, c#, resharper, var, visual-studio
Solution
One reason is improved readability. Which is better?
Dictionary<int, MyLongNamedObject> dictionary = new Dictionary<int, MyLongNamedObject>();
or
var dictionary = new Dictionary<int, MyLongNamedObject>();
Problem
I've just started using ReSharper with Visual Studio (after the many recommendations on SO). To try it out I opened up a recent ASP.NET MVC project. One of the first and most frequent things I've noticed it suggesting is to change most/all my explicit declarations to `var` instead. For example: ``` //From This: MyObject foo = DB.MyObjects.SingleOrDefault(w => w.Id == 1); //To This: var foo = DB.MyObjects.SingleOrDefault(w => w.Id == 1); ``` and so on, even with simple types such as `int`, `bool`, etc. Why is this being recommended? I don't come from a computer science or .NET background, having "fallen into" .NET development recently, so I'd really like to understand what's going on and whether it's of benefit or not.