Конечно, есть разница в общем синтаксисе, но какие существуют другие критические различия? Есть некоторые различия, верно?
Каковы наиболее важные функциональные различия между С# и VB.NET?
Ответ 1
Связанные сравнения очень тщательны, но что касается основных отличий, я бы заметил следующее:
-
У С# есть анонимные методыУ VB есть и эти, тоже -
С# имеет ключевое слово yield (блоки итератора)VB11 добавил этот - VB поддерживает неявное последнее связывание (С# имеет явное связывание позднее через динамическое ключевое слово)
- VB поддерживает XML-литералы
- VB нечувствителен к регистру
- Дополнительные фрагменты кода для VB
-
Дополнительные инструменты для рефакторинга для С#Visual Studio 2015 теперь предоставляет те же инструменты рефакторинга как для VB, так и для С#.
В целом все, на что ориентируется MS, для каждого варьируется, потому что два языка ориентированы на очень разные аудитории. Это сообщение в блоге содержит хорошее резюме целевых аудиторий. Вероятно, это хорошая идея, чтобы определить, к какой аудитории вы находитесь, потому что она определит, какие инструменты вы получите от Microsoft.
Ответ 2
У этой темы было много времени, так как был выпущен .NET 2.0. См. Статью Wikipedia для читаемого резюме.
Ответ 3
Это можно рассматривать как синтаксис, но VB.NET нечувствителен к регистру, а С# - чувствителен к регистру.
Ответ 4
Это является очень всеобъемлющей ссылкой.
Ответ 5
Поскольку я предполагаю, что вы можете использовать Google, я не думаю, что ссылка на другие сайты - это то, что вы ищете.
Мой ответ: выберите базу в истории ваших разработчиков. С# больше JAVA, и, возможно, С++. VB.NET был проще для программистов VB, но я думаю, что это уже не проблема. Синус не содержит новых .NET-программистов из старого VB.
Мое мнение, что VB более продуктивен, чем С#, кажется, что он всегда впереди с точки зрения инструментов производительности (например, intelisense), и я бы рекомендовал vb over С# кому-то, кто спрашивает. Конечно, кто-то, кто знает, что он предпочитает С#, не будет спрашивать, а С#, вероятно, правильный выбор для него.
Ответ 6
Хотя синтаксический сахар на С# 3 действительно продвинул планку вперед, я должен сказать, что некоторые элементы Linq для XML в VB.Net кажутся довольно приятными и делают обработку сложного, глубоко вложенного XML немного более терпимым. Немного.
Ответ 7
Одно из очевидных различий заключается в том, как они обрабатывают методы расширения (Vb.Net фактически допускает то, что С# не делает), передавая тип, по которому метод расширения определяется как ref): http://blog.gadodia.net/extension-methods-in-vbnet-and-c/
Ответ 8
Помимо синтаксиса не так уж много. Они оба скомпилируются точно так же IL, поэтому вы можете скомпилировать что-то как VB и отразить его на С#.
Большинство очевидных различий - синтаксический сахар. Например, VB поддерживает динамические типы, но на самом деле они такие же статические, как и С#, - компилятор VB их вычисляет.
Visual Studio ведет себя по-разному с VB, чем с С#, - он скрывает множество функций, но добавляет фоновую компиляцию (отлично подходит для небольших проектов, зависание ресурсов для больших) и улучшает поддержку сниппетов.
С большим количеством компилятора "магия" в С# 3 VB.Net действительно отстает. Единственное, что у VB теперь имеет то, что С# не является ключевым словом handles
, а также спорным преимуществом.
@Tom - это действительно полезно, но немного устаревшее - теперь VB.Net поддерживает XML-документы с помощью '''
@Luke - VB.Net до сих пор не имеет анонимных методов, но теперь поддерживает lambdas.
Ответ 9
Самая большая разница, на мой взгляд, заключается в способности писать небезопасный код на С#.
Ответ 10
Хотя VB.NET поддерживает обработку исключений типа catch... catch, у него все еще есть нечто похожее на VB6 ON ERROR. ON ERROR можно серьезно злоупотреблять, и в подавляющем большинстве случаев попробуйте... улов намного лучше; но ON ERROR может быть полезна при обработке операций тайм-аута COM, где ошибка может быть захвачена, декодирована, а окончательная "повторите попытку" - простая одна строка. Вы можете сделать то же самое с try... catch, но код намного беспорядочен.
Ответ 11
Этот раздел кратко описан в википедии и выносливости.
http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Visual_Basic_.NET http://www.harding.edu/fmccown/vbnet_csharp_comparison.html
Просто просмотрите и сделайте свои заметки.
Ответ 12
Когда он добирается до IL, все его просто бит. В этом случае нечувствительность - это просто пропуск прекомпилятора. Но общий консенсус в том, что vb более многословный. Если вы можете написать С#, почему бы не сохранить свои глаза и руки и написать меньшее количество кода, чтобы сделать то же самое.
Ответ 13
Одно из очевидных различий заключается в том, как они обрабатывают методы расширения (Vb.Net фактически допускает то, что С# не делает), передавая тип, по которому метод расширения определяется как ref): http://blog.gadodia.net/extension-methods-in-vbnet-and-c/
Ответ 14
Скотт Гензельман недавно написал интересную статью, контрастирующую var и Dim: Вернуться к основам: var!= Dim
Ответ 15
Да VB.NET исправил большинство проблем VB6 и сделал его надлежащим языком ООП, т.е. Похожий по возможностям на С#. AlthougnI, как правило, предпочитает С#, я нахожу старую конструкцию VB ON ERROR, полезную для обработки тайм-аутов Inter Interop. Что-то использовать мудро, хотя - ON ERROR легко злоупотреблять!!