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 much time to acquaint myself with the var keyword)
Would I still need the var keyword ? Is there anything that var can do.. that dynamic can’t?
var x = SomeFunctionThatIKnowReturnsSomeKindOfList(); // do something with x dynamic x = SomeFunctionThatIKnowReturnsSomeKindOfList(); // do something with x
No, they’re very different.
varmeans ‘infer the type of the variable at compile-time’ – but it’s still entirely statically bound.dynamicmeans ‘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
dynamicvery rarely – only when I truly want dynamic behaviour:varlets you catch typos etc at compile-time