Каковы наиболее важные функциональные различия между C # и VB.NET? - PullRequest
33 голосов
/ 14 августа 2008

Конечно, есть разница в общем синтаксисе, но существуют ли другие критические различия? Есть некоторые различия, верно?

Ответы [ 15 ]

32 голосов
/ 15 августа 2008

Связанные сравнения очень тщательные, но в отношении основных отличий я бы отметил следующее:

  • В C # есть анонимные методы В VB теперь есть и такие
  • C # имеет ключевое слово yield (блоки итераторов) VB11 добавил это
  • VB поддерживает неявное позднее связывание (C # теперь имеет явное позднее связывание через ключевое слово dynamic)
  • VB поддерживает литералы XML
  • VB нечувствителен к регистру
  • Больше готовых фрагментов кода для VB
  • Больше готовых инструментов рефакторинга для C # Visual Studio 2015 теперь предоставляет одинаковые инструменты рефакторинга для VB и C #.

В общем, вещи, на которых фокусируется MS для каждого, различны, потому что два языка ориентированы на очень разную аудиторию. Это сообщение в блоге содержит хорошее резюме целевой аудитории. Вероятно, это хорошая идея, чтобы определить, в какой аудитории вы находитесь, потому что это определит, какие инструменты вы получите от Microsoft.

9 голосов
/ 15 августа 2008

С тех пор, как был выпущен .Net 2.0, в этой теме было много времени. См. Википедию статью для удобочитаемого резюме.

5 голосов
/ 15 августа 2008

Это может считаться синтаксисом, но VB.NET чувствителен к регистру в , а C # чувствителен к регистру .

.
3 голосов
/ 15 августа 2008

Это является очень полным справочником.

2 голосов
/ 17 августа 2008

Одно явное отличие заключается в том, как они обрабатывают методы расширения (Vb.Net фактически допускает то, чего не делает C # - передавая тип, для которого метод расширения определяется как ref): http://blog.gadodia.net/extension-methods-in-vbnet-and-c/

2 голосов
/ 17 августа 2008

Хотя синтаксический сахар на C # 3 действительно продвинул планку вперед, я должен сказать, что некоторые вещи Linq to XML в VB.Net кажутся довольно приятными и делают обработку сложного, глубоко вложенного XML немного более терпимой. Просто немного.

2 голосов
/ 15 августа 2008

Поскольку я предполагаю, что вы можете использовать Google, я не думаю, что вы ищете ссылку на другие сайты.

Мой ответ: выберите базу на основе истории ваших разработчиков. C # больше похож на JAVA и, вероятно, на C ++. VB.NET был проще для VB-программистов, но я думаю, что это больше не проблема, поскольку нет новых .NET-программистов, пришедших из старого VB.

Мое мнение таково, что VB более продуктивен, чем C #, кажется, он всегда впереди с точки зрения инструментов производительности (таких как intelisense), и я бы порекомендовал vb over c # кому-то, кто спрашивает. Конечно, тот, кто знает, что он предпочитает c #, не спросит, и c #, вероятно, является для него правильным выбором.

1 голос
/ 14 января 2013

Эта тема кратко описана в википедии и хардинге.

http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Visual_Basic_.NET http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

Просто пройдите и сделайте свои заметки об этом.

1 голос
/ 20 декабря 2010

Хотя VB.NET поддерживает обработку исключений типа try ... catch, он по-прежнему похож на VB6 ON ERROR. ON ERROR может серьезно злоупотреблять, и в подавляющем большинстве случаев попробуйте ... catch намного лучше; но ON ERROR может быть полезен при обработке операций тайм-аута COM, когда ошибка может быть перехвачена, декодирована, а последнее «попробуйте еще раз» - простая строка. Вы можете сделать то же самое с try ... catch, но код намного сложнее.

1 голос
/ 27 августа 2010

Самым большим отличием на мой взгляд является возможность писать небезопасный код на C #.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...