Some cool features coming to C# 4.0:
Dynamic Typing - 1) Should enable calling functions in JavaScript, Python, and Ruby. 2) Microsoft will use this to make automating COM objects easier, including .NET projects that utilize Microsoft Office.
Dynamic Objects - This should enable some slick metaprogramming techniques ala Ruby on Rails. May allow you to construct
mixins and perhaps implement a
method_missing-like method.
Named and Optional Parameters - no brainer - been available in VB.NET for years.
C# 5.0 Features:
Well, the one thing we do know about C# 5.0 is that Microsoft is trying to deliver this concept of "Compiler as a Service". Building on the dynamic concepts of 3.0 and 4.0 this will introduce an "eval" capability.