Anders presentation on C# 4 was as usual great to listen
to. He continues to evolve the language with solid steps,
and the presentation was quite fun.
his presentation or just read
With C# 4 the new "dynamic" keyword has been introduced to
flag a variable as a dynamic variable.
This is slightly different than var and object, the
differences are as follows:
- "object x" is a shorthand for "System.Object x".
This declares the variable x to have the type
System.Object, this is strongly typed. And since C#
provides autoboxing, you can assign anything you want
to this variable.
- "var x = E" declares a variable x to be of the
type of the expression E. The E is required, not
optional. This is a strongly typed declaration, and
you can only assign values whose type is typeof(E) to
- "dynamic x" declares the variable x to have
dynamic semantics. This means that the C# compiler
will generate code that will allow dynamic invocations
on x. The actual meaning of "x.M" is deferred until
runtime and will depend on the semantics of the