Aúnque practicamente ambos lenguajes te dan las mismas prestaciones y finalmente el codigo intermedio generado es casi el mismo. con algunas exepciones dando al condigo intermedio generado por VB.NET un 20% mas que el generado por C#.
Algunos puntos a destacar de C# serian:
La plataforma .Net fue programada en C#
C# es un lenguaje mas estricto en su sintaxis.
Existen implementaciones libres completas de c# como el proyecto mono
http://www.mono-project.com/Main_Page
que me permiten compilar y ejecutar mis aplicaciones en diferenctes plataformas y sistemas operativos.
Practicamente todas las librerias de clases y aplicaciones libres son programadas en c#
ej:
SharpDevelop
MonoDevelop
SharpPdf
iTextSharp
OpenPop
OpenSmtp
y un largo etc...
Algunas Cosas en contra del VB.Net
Microsoft en su politica de no perder a los antiguos programadores de Visual Basic, creo e incluyo en el framework el espacio de nombres Microsoft.VisualBasic
Lo que provee acceso a distintas funciones comunes que las incluye el framework, pero me permite usar sintaxis del antiguo vb
por ejemplo, un cuadro de dialogo:
en el namespace Microsoft.VisualBasic
MsgBox("Hola Mundo!")
en el namespace System.Windows.Forms
MessageBox.Show("Hola Mundo!")
El largo de una variable:
Dim variable As String = "aaaaa"
en el namespace Microsoft.VisualBasic
Len(variable)
Propio de la clase System.String
variable.Length
y podriamos seguir con ejemplos
es cierto que hace más facil a los que ya conocen vb pero resulta en un codigo confuso y muchos terminan programando a la vieja usansa vb sin conocer ni entender las ventajas de las librerias de clases y el framework.