When C# 4.0 comes out and we have the dynamic keyword as described in this excellent presentation by Anders Hejlsberg, (C# is evolving faster than I can keep up.. I didn\'t have
No, they're very different.
var
means "infer the type of the variable at compile-time" - but it's still entirely statically bound.
dynamic
means "assume I can do anything I want with this variable" - i.e. the compiler doesn't know what operations are available, and the DLR will work out what the calls really mean at execution time.
I expect to use dynamic
very rarely - only when I truly want dynamic behaviour:
var
lets you catch typos etc at compile-time