Одно из самых убедительных отличий для меня заключается в том, что C # обычно имеет более лаконичный синтаксис. Это проявляется особенно с лямбда-выражениями. Хотя VB.Net теперь имеет те же функции, я нахожу синтаксис VB.Net слишком многословным.
Например, если вы используете синтаксис LINQ 'Fluent API':
C #
var addresses = _users
.Where(u => u.Name == "scott")
.Select(u => u.Address)
Правда, поначалу синтаксис может быть немного странным, но как только вы к нему привыкнете, он становится очень читабельным. Сравните это с VB.Net:
Dim addresses = _users _
.Where(Function(u) As Boolean
return u.Name = "scott"
End Function) _
.Select(Function(u) as Address
Return u.Address
End Function)
EDIT:
Видимо я был дезинформирован ...
Приведенный выше код действителен только в VB10 (где добавлены многострочные лямбда-выражения), но его можно записать более кратко следующим образом:
Dim addresses = users _
.Where(Function(u) u.Name = "scott") _
.Select(Function(u) u.Address)
Помимо уродливых подчеркиваний и ключевого слова Function
вместо =>
, этот в основном равен . Все еще предпочитаю синтаксис C #, хотя; -)