Personally, I think Microsoft is planning to get rid of
VB altogether, but is allowing this intermediate phase of having
VB.NET and C# together in order not to lose too much of their market. Most
VB programmers who get around to spending a day or so with C# will switch - C# is soooo much sweeter in style - clean and elegant!
Anyway, C# and
VB.NET are mainly different only on the surface, but there are the following differences I'm aware of:
C# has the following that
VB.NET doesn't have:
- ability to insert unsafe (non-managed) code (e.g., pointers)
- operator overloading (maybe
VB has this in VS 2003 ??)
- XML documentation comment feature
VB.NET has the following that C# doesn't have:
- range capability in Select statements
- late binding
- the 'When' keyword for catch blocks
- unstructured error handling, if you want it (hahaha)
- optional parameters (in C#, you must use overloaded methods)