This must be the third or fourth time I was viewing Anders Hejlsberg and he was brilliant as usual, with lots of small examples he easily explained what coming in C# 4.0.
The main thing with C# 4.0 is that it is opening up easier cooperation with dynamic languages by the the keyword dynamic. Declaring a variable as dynamic mean that no checks will be done at compile time but rather just invoke the methods at runtime.
Other news in C# 4.0 is going to by named parameters and default values for parameters, pretty much the way it always has been in VB. This together with the dynamic keyword makes it much easier when working with COM objects, especially Excel and Word - in the way that you doesn't need to type cast the result and you doesn't have to provide a long list of "ref missing" as parameters to methods on COM objects.
In the end he talked a little bit about what might is coming after C# 4.0, and it was mostly about meta programming. Interesting, mind bending and a little bit strange. But he also mentioned that all or most of the current programming paradigms, object orientation, functional programming and dynamic languages will come together. Perhaps not only in C# but more of a "the new paradigm is multi paradigm" style.
He did also talked about that Moore's Law isn't valid any more regarding processor speed, and connected with my pre conference day, and talked a little bit on the way we could and should address the question on parallelism - from a C# language perspective. The conclusion on this is that's about time to really start looking at this parallel, concurrent programming stuff.