Дополнительно
Каковы наиболее важные функциональные различия между C# и VB.NET?
Конечно, есть разница в общем синтаксисе, но какие еще критические различия существуют? Есть некоторые различия, верно?
33
15
Связанные сравнения очень полны, но до основных отличий я отметил бы следующее:
В целом внимание MS вещей на для каждого варьируется, потому что эти два языка предназначены для совсем других зрителей. У этого сообщения в блоге есть хорошее резюме целевых аудиторий. Это - вероятно, хорошая идея определить, в какой аудитории Вы находитесь, потому что это определит какой инструменты you' ll добираются от Microsoft.
Этой теме уделяется много внимания с момента выхода .Net 2.0. См. эту статью Википедии, в которой приводится краткое изложение.
Это можно считать синтаксисом, но VB.NET - случай insensitive, в то время как C# - случай sensitive.
Это является очень полным справочником.
Хотя сахар синтаксиса на C#3 действительно продвинул бар, я должен сказать, что некоторые Linq к материалу XML в VB.Net кажутся довольно хорошими и делают комплекс обработки, глубоко вложенный XML терпимым. Просто немного.
Поскольку я предполагаю, что вы умеете гуглить, я не думаю, что ссылка на другие сайты - это то, что вы ищете.
Мой ответ: Выбирайте на основе истории ваших разработчиков. C# больше похож на JAVA, и, возможно, на C++. VB.NET был проще для VB программистов, но я думаю, что это уже не проблема, так как нет новых .NET программистов, пришедших из старого VB.
Мое мнение, что VB более продуктивен, чем C#, кажется, что он всегда впереди в плане инструментов производительности (таких как intelisense), и я бы рекомендовал VB вместо C# тому, кто спросит. Конечно, тот, кто знает, что предпочитает c#, не будет спрашивать, и c#, вероятно, будет правильным выбором для него.
Одно явное различие находится в том, как они обращаются с дополнительными методами (Vb. Чистый на самом деле позволяет чему-то тот C# doesn' t - прохождение типа, на котором дополнительный метод определяется как касательно): < http://blog.gadodia.net/extension-methods-in-vbnet-and-c/>
Кроме синтаксиса не так очень больше. Они оба собирают к точно тому же 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 также с '' ' '';
@Luke - VB.Net все еще doesn' у t есть скоро-методы, но действительно теперь поддерживает лямбды.
Эта тема кратко описана в Википедии и harding.
http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Visual_Basic_. ЧИСТЫЙ http://www.harding.edu/fmccown/vbnet_csharp_comparison.html
Просто пройдите и сделайте свои примечания по этому.
Самое большое различие, по-моему - способность написать небезопасный кодекс в C#.
Хотя попытка поддержек VB.NET... ловит обработку исключений типа, у нее все еще есть что-то подобное VB6' s НА ОШИБКЕ. НА ОШИБКЕ Может быть серьезно злоупотреблен, и в подавляющем большинстве случаев, попробовать... выгоду, намного лучше; но НА ОШИБКЕ может быть полезным, обращаясь с операциями перерыва COM, где ошибка может быть поймана в ловушку, расшифрована, и финал " попробуйте again" простая одна линия. Вы можете сделать, то же с попыткой... ловит, но кодекс намного более грязен.
Да VB.NET решил большинство проблем VB6 и сделал его надлежащим языком ООП - т.е. Подобный в способностях к C#. AlthougnI склонны предпочитать C#, я действительно нахожу старый VB НА ОШИБОЧНОЙ конструкции полезным для обработки COM interop перерывы. Что-то, чтобы использовать мудро, хотя - НА ОШИБКЕ легко злоупотреблен!!
Одно явное различие находится в том, как они обращаются с дополнительными методами (Vb. Чистый на самом деле позволяет чему-то тот C# doesn' t - прохождение типа, на котором дополнительный метод определяется как касательно): < http://blog.gadodia.net/extension-methods-in-vbnet-and-c/>
Когда это получает к IL все просто биты. Та нечувствительность случая - просто проход предварительного компилятора. Но общее согласие, vb более многословен. Если Вы можете написать c#, почему бы не спасти Ваши глаза и руки и написать меньшую сумму кодекса, чтобы сделать то же самое.
[Скотт Хэнселмен] (http://www.hanselman.com/blog/) недавно написал интересную статью, противопоставляющую вар и Тусклый: [Назад к основам: вар! = Тусклый] (http://www.hanselman.com/blog/BackToBasicsVarDim.aspx)