Type Inference and Anonymous Types:
The var keyword is
another interesting new entry in the latest version of C#.
The type won’t be determined at run time (late-binding); instead, the
compiler will infer the type from the expression assigned to the var variable. For this reason, an initial value
assignment is required to avoid a compiler error. When the var keyword is used, a strongly typed reference is
always generated.