Каковы наиболее важные функциональные различия между C# и VB.NET?

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

Комментарии к вопросу (1)
Решение

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

  • < strike> у C# есть анонимный methods у VB есть они теперь, также
  • < strike> у C# есть ключевое слово урожая (iterator блоки) VB11 добавил это
  • Поддержки VB неявное последнее закрепление (у C# есть явное последнее закрепление теперь через динамическое ключевое слово),
  • VB поддерживает опечатки XML
  • VB без учета регистра
  • Больше фрагментов кода коробки для VB
  • < Strike> Больше инструментов рефакторинга коробки для C# Визуальная Студия 2015 теперь обеспечивает те же инструменты рефакторинга и для VB и для C#.

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

Комментарии (6)

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

Комментарии (0)

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

Комментарии (2)

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

Комментарии (0)

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

Комментарии (0)

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

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

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

Комментарии (1)

Одно явное различие находится в том, как они обращаются с дополнительными методами (Vb. Чистый на самом деле позволяет чему-то тот C# doesn' t - прохождение типа, на котором дополнительный метод определяется как касательно): < http://blog.gadodia.net/extension-methods-in-vbnet-and-c/>

Комментарии (1)

Кроме синтаксиса не так очень больше. Они оба собирают к точно тому же IL, таким образом, Вы можете собрать что-то как VB и отразить его в C#.

Большинство очевидных различий - синтаксический сахар. Например, VB, кажется, поддерживает динамические типы, но действительно they' ре, столь же статичное как C#' s - компилятор VB понимает их.

Визуальная Студия ведет себя по-другому с VB, чем с C# - это скрывает большую функциональность, но добавляет фоновое компилирование (большой для маленьких проектов, ресурс hogging для больших) и лучшая поддержка отрывка.

Со все большим количеством компилятора ' magic' в C#3 VB.Net действительно отстал. У единственной вещи VB теперь есть тот C# doesn' t - ключевое слово 'ручек' - и that' s спорной выгоды.

@Tom - настолько действительно полезный, но немного устаревший - VB.Net теперь поддерживает докторов XML также с '' ' &#39';

@Luke - VB.Net все еще doesn' у t есть скоро-методы, но действительно теперь поддерживает лямбды.

Комментарии (2)

Эта тема кратко описана в Википедии и harding.

http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Visual_Basic_. ЧИСТЫЙ http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

Просто пройдите и сделайте свои примечания по этому.

Комментарии (0)

Самое большое различие, по-моему - способность написать небезопасный кодекс в C#.

Комментарии (0)

Хотя попытка поддержек VB.NET... ловит обработку исключений типа, у нее все еще есть что-то подобное VB6' s НА ОШИБКЕ. НА ОШИБКЕ Может быть серьезно злоупотреблен, и в подавляющем большинстве случаев, попробовать... выгоду, намного лучше; но НА ОШИБКЕ может быть полезным, обращаясь с операциями перерыва COM, где ошибка может быть поймана в ловушку, расшифрована, и финал " попробуйте again" простая одна линия. Вы можете сделать, то же с попыткой... ловит, но кодекс намного более грязен.

Комментарии (0)

Да VB.NET решил большинство проблем VB6 и сделал его надлежащим языком ООП - т.е. Подобный в способностях к C#. AlthougnI склонны предпочитать C#, я действительно нахожу старый VB НА ОШИБОЧНОЙ конструкции полезным для обработки COM interop перерывы. Что-то, чтобы использовать мудро, хотя - НА ОШИБКЕ легко злоупотреблен!!

Комментарии (0)

Одно явное различие находится в том, как они обращаются с дополнительными методами (Vb. Чистый на самом деле позволяет чему-то тот C# doesn' t - прохождение типа, на котором дополнительный метод определяется как касательно): < http://blog.gadodia.net/extension-methods-in-vbnet-and-c/>

Комментарии (0)

Когда это получает к IL все просто биты. Та нечувствительность случая - просто проход предварительного компилятора. Но общее согласие, vb более многословен. Если Вы можете написать c#, почему бы не спасти Ваши глаза и руки и написать меньшую сумму кодекса, чтобы сделать то же самое.

Комментарии (0)

[Скотт Хэнселмен] (http://www.hanselman.com/blog/) недавно написал интересную статью, противопоставляющую вар и Тусклый: [Назад к основам: вар! = Тусклый] (http://www.hanselman.com/blog/BackToBasicsVarDim.aspx)

Комментарии (0)