The C# var keyword was introduced in C# version 3.0. According to Eric Lippert from the Microsoft C# team it was included for 2 primary reasons:
1) To limit redundant code, such as:
Dictionary<string, List<int, bool>> myDictionary = new Dictionary<string, List<int,bool>>();
and write is as
var myDictionary = new Dictionary<string, List<int,bool>>();
2) To support anonymous types, which were necessary to implement LINQ, such as:
var car = new { Make = "Toyota", Model = "Camry" };
--
Now, much of the code you see floating around on the Internet coming from experts use vars just about anywhere where it can be used. However, I have developed a personal preference, i.e. best practice if you will, that goes like this:
- Value types, such as, int, bool, float, and string (as an exception) are explicity declared.
- Reference types are declared with var.
Is there anything such as a 'C# var usage' Best Practice rule out there?