The C# team has been fairly candid in the features they are considering for C# v4. You just have to look hard enough. We'll know what they decide on soon enough as the PDC is just around the corner. Declarative side-effect free methods, Contra/covariance of arguments/return values, Declarative dynamic dispatch (VB-style object access). These all sound great. Perhaps I can add a few suggestions of my own not just for C# but for .Net in general:
A few ideas for .Net vnext:
- String.Join should work on IEnumerable<string> not just arrays.
- C# enums should be OO just like Java 5.0.
- Forget about the ThreadPool. We need a resource-management WorkerPool. Something that manages a task based not just on availability of threads, but of memory and IO. There's no point in throttling threads if you're task/agent is memory or IO bound.
- C# null propagation (lifted member access). Ian Griffiths has by far the best description I've ever seen. I'd love to use something like var x = foo()..bar()..baz()..quux() where the double period (..) means propagate nulls.
- Server-side CSS parsing, optimization, minimizing.
As for Visual Studio:
- Collaborative Editing (cross network pair-programming). Eclipse does it. SubEthaEdit does it.
- Much better JavaScript type inferrence in the IDE.
- MSTest is too tightly coupled to the IDE. And it shows. MSTest is needy in many areas. There are 2 .Net Unit Testing pioneers at Microsoft. It's a wonder they got it so wrong.
- Sort out Edit n Continue so it actually works when I modify an iterator, anonymous method etc. We're still a long long way from the glorious REPL in VB1-6.