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

Я не знаю, почему ты этого хочешь, но ты можешь:

min_a_b = A + B - max(A, B)
33
задан Larsenal 14 August 2008 в 19:59
поделиться

12 ответов

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

  • <забастовка> C# имеет анонимные методы , VB имеет их теперь, также
  • <забастовка> C# имеет ключевое слово урожая (блоки итератора) , VB11 добавил это
  • поддержки VB неявное позднее связывание (C# имеет явное позднее связывание теперь через динамическое ключевое слово)
  • , VB поддерживает литералы XML
  • , VB нечувствителен к регистру
  • [еще 117] out-of-the-box фрагменты кода для VB
  • <забастовка> Больше инструментов рефакторинга out-of-the-box для C# Visual Studio, которую 2015 теперь обеспечивает тем же инструментам рефакторинга и для VB и для C#.

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

32
ответ дан 27 November 2019 в 18:15
поделиться

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

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

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

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

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

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

1
ответ дан 27 November 2019 в 18:15
поделиться

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

0
ответ дан 27 November 2019 в 18:15
поделиться

Scott Hanselman недавно записал интересной статье контрастирующий var и Тусклый: Назад к основам: var! = Тусклый

0
ответ дан 27 November 2019 в 18:15
поделиться

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

0
ответ дан 27 November 2019 в 18:15
поделиться

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

2
ответ дан 27 November 2019 в 18:15
поделиться

Так как я предполагаю, что можно погуглить, я не думаю, что ссылка на большее количество сайтов - то, что Вы ищете.

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

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

2
ответ дан 27 November 2019 в 18:15
поделиться

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

3
ответ дан 27 November 2019 в 18:15
поделиться

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

2
ответ дан 27 November 2019 в 18:15
поделиться

Эта тема имела много времени личного контакта, так как.Net 2.0 был выпущен. Посмотрите этот статья Wikipedia для читаемой сводки.

9
ответ дан 27 November 2019 в 18:15
поделиться

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

5
ответ дан 27 November 2019 в 18:15
поделиться

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

1
ответ дан 27 November 2019 в 18:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: