At the 2008 PDC, Microsoft promised language parity between Visual Basic and C#. What that means for .NET 4 was enumerated during the Lang.NET keynote (18 minute mark). Briefly, this is what you can expect to see.
New Features for both languages
- Interop with Dynamic Languages
- Co/contra-variance
- PIA deployment not needed
New for VB 10, already available in C#
- Auto-implementation of properties
- Collection initializers
- Statement lambdas
New for C# 4, already available in VB
- Named/Optional Parameters
- Latebinding support
- Omit “ref” on COM calls
Unfortunately, two key features did not make the list. C# 4 will not be picking up XML Literals and VB will not have iterators.
Not mentioned were some smaller, but still needed, features such as allowing structures in optional parameters. The inability to declare an optional, nullable integer on a function makes making one-to-one mappings with stored procedures impossible. This was demonstrated for VB between sessions at the PDC.