Just thought I'd share the link: New Features in C# 4.0
Including optional parameters (will be useful for the C#LE wrapper):
public void Initialize(int width = 800, int height = 600, int depth = 32, int hertz = 60, int flags = (int)BufferType.Color) { ... }
Named parameters (useful for users)
Graphics.Initialize(1024, 768, hertz : 75);
Dynamic objects, with calls and methods calculated at runtime:
dynamic test = GetDynamicObject(...);
test.NotDefined(2);
Will work even though the type of "test" is not determined.
A Runtime Exception will be thrown if the method does not exist.
Looking forward to this new version