Сведения о вопросе

PIRLO

02:16, 23rd August, 2020

Теги

c#   vb.net   comparison    

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

Просмотров: 559   Ответов: 15

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



  Сведения об ответе

DO__IT

11:58, 13th August, 2020

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

  • C# имеет анонимные методы VB имеет их и сейчас
  • C# имеет ключевое слово yield (блоки итератора) VB11 добавил Это
  • VB поддерживает явное позднего связывания (C# сейчас явный позднее связывание с помощью ключевого слова Dynamic)
  • VB поддерживает XML литералов
  • VB является нечувствительным к регистру
  • Еще out-of-the-box фрагмента кода для VB
  • Дополнительные средства рефакторинга out-of-the-box для C# Visual Studio 2015 теперь предоставляет те же средства рефакторинга для VB и C#.

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


  Сведения об ответе

dump

06:24, 1st August, 2020

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


  Сведения об ответе

#hash

11:00, 9th August, 2020

Это могут быть рассмотрены синтаксис, но VB.NET дело в чувствительной, C# чувствителен к регистру .


  Сведения об ответе

darknet

00:00, 8th August, 2020

Это очень всеобъемлющая справка.


  Сведения об ответе

PROGA

06:39, 9th August, 2020

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


  Сведения об ответе

PAGE

13:14, 13th August, 2020

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


  Сведения об ответе

9090

05:07, 3rd August, 2020

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

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

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


  Сведения об ответе

baggs

22:23, 14th August, 2020

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


  Сведения об ответе

ЯЯ__4

21:06, 1st October, 2020

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


  Сведения об ответе

davran

23:49, 19th August, 2020

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

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

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

С каждым новым компилятором 'magic' в C#3 VB.Net действительно отстал. Единственное, что теперь есть у VB, чего нет у C#, - это ключевое слово handles , и это спорное преимущество.

@Tom - это действительно полезно, но немного устарело - VB.Net теперь поддерживает XML docs тоже с '''

@Luke - VB.Net все еще не имеет anon-методов, но теперь поддерживает лямбды.


  Сведения об ответе

lool

05:25, 22nd August, 2020

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

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

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


  Сведения об ответе

piter

01:51, 22nd August, 2020

Да VB.NET исправил большинство проблем VB6 и сделал его правильным языком OOP-т. е. Похожие по способностям на C#. AlthougnI, как правило, предпочитают C#, я нахожу старую конструкцию VB ON ERROR полезной для обработки таймаутов COM interop. Что - то использовать мудро, хотя-по ошибке легко злоупотреблять!!


  Сведения об ответе

piter

21:06, 1st October, 2020

Скотт Хансельман недавно написал интересную статью, противопоставляющую var и Dim: Back to Basics: var != Тусклый


  Сведения об ответе

park

21:31, 8th August, 2020

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


  Сведения об ответе

fo_I_K

22:34, 5th August, 2020

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться