Jump to content

Сравнение Visual Basic и Visual Basic .NET

Visual Basic .NET был выпущен Microsoft в 2002 году как преемник исходного Basic Visual языка программирования . Он был реализован на .NET Framework 1.0 . Главной новой функцией стал управляемый код . Программисты, знакомые только с Visual Basic, вероятно, столкнулись бы с трудностями при работе с новой версией или адаптации для нее существующих программ.

Очевидные существенные различия

[ редактировать ]

Новая платформа мало походила на свою предшественницу. [ нужна ссылка ] Хотя программисты ожидали, что смогут перекомпилировать исходный код Visual Basic в целевой .NET, реальность ситуации заключалась в том, что Visual Basic .NET представлял собой совершенно другую парадигму. [ нужна ссылка ]

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

Основной синтаксис остается очень похожим: условия, циклы, процедуры и подпрограммы объявляются и записываются одинаково (см. Visual Basic). Мобильность от предыдущих итераций Visual Basic к Visual Basic .NET действительно является частью существующего кода: программисты с опытом работы в обоих мирах должны эффективно ориентироваться на новую платформу со старой логикой. Разработчику Visual Basic .NET придется научиться использовать базовые типы .NET, а не то, к чему они привыкли в Visual Basic.

Программист, который работал только с Visual Basic, может столкнуться с трудным процессом обучения при переходе на Visual Basic .NET. Программист, владеющий другим языком или имеющий опыт работы со средой выполнения .NET, должен справиться. Было бы лучше думать о Visual Basic .NET как о новом языке, вдохновленном классическим Visual Basic, а не как о продолжении Visual Basic 6.0, с дополнительными трудностями для миграции программистов, поскольку VB.NET взаимодействует с .NET Framework, тогда как VB6 был основан на объектной модели компонентов (COM). [ нужна ссылка ]

Более детальное сравнение

[ редактировать ]

Есть некоторые немедленные изменения, на которые разработчикам следует обратить внимание:

Больше C-подобного синтаксиса

[ редактировать ]

Visual Basic .NET позволяет +=, -=, *=, /=, \=, ^=, и &= составные операторы, чтобы более длинные строки, например:

variable = variable + 1

теперь можно записать как:

variable += 1

Однако операторы увеличения и уменьшения не поддерживаются.

Короткозамкнутая логика

[ редактировать ]

В предыдущих итерациях Visual Basic все инструкции в условии оценивались, даже если результат условия можно было определить до его оценки. Например:

If foo() And bar() Then
  ' code here is executed if foo() and bar() both return True, however, if foo() returns False, bar() is still evaluated
End If

Это было не только неэффективно, но и могло привести к неожиданным результатам для любого человека, привыкшего к другому языку. В Visual Basic .NET появились новые операторы AndAlso и OrElse. [1] были добавлены операторы для обеспечения краткой оценки, как и во многих других языках.

Явных типов, подобных указателям, больше нет.

[ редактировать ]

Типы переменных Var* устарели в Visual Basic .NET. Общая среда выполнения решает, какие типы являются ссылочными типами, а какие типами значений, поэтому это больше не является областью программиста.

Свойства: Let и Set

[ редактировать ]

Свойства класса больше не требуют операторов Let и Set.

Отладочная печать

[ редактировать ]

Debug.Print заменяется на Debug.Write и Debug.WriteLine.

Процедуры

[ редактировать ]

В Visual Basic .NET вызов процедуры должен содержать круглые скобки.

Visual Basic .NET требует спецификации ByVal или ByRef для параметров. В Visual Basic спецификацию можно было опустить, подразумевая по умолчанию ByRef. Большинство сред разработки, таких как Visual Studio .NET , автоматически вставляют ByVal, поэтому фактически по умолчанию используется ByVal, а не ByRef. Существуют инструменты для преобразования кода Visual Basic в VB.NET, например мастер обновления Visual Basic, который был включен в Visual Studio .NET 2002 и 2003. Инструменты преобразования при необходимости автоматически вставляют ByRef, сохраняя семантику приложения Visual Basic.

Массивы с отсчетом от нуля

[ редактировать ]

В Visual Basic 5.0 и 6.0 традиционно используются массивы с отсчетом от нуля (нижняя граница по умолчанию), если не объявлено «Option Base 1». Это было источником многих ошибок в программах Visual Basic, особенно когда речь шла о взаимодействии за пределами библиотек программ. Хотя среда общеязыкового выполнения .NET может поддерживать массивы с любым базовым значением, Visual Basic .NET и C# предоставляют только массивы и списки с отсчетом от нуля, а спецификация общего языка .NET требует, чтобы массивы начинались с нуля для совместимости между языками .NET.

Зубчатые массивы

[ редактировать ]

Visual Basic .NET представил концепцию зубчатого массива , согласно которой строки могут иметь неравную длину в отличие от единой длины массивов, навязанной программистам Visual Basic.

Вариант типа данных исчез.

[ редактировать ]

В языках, компилируемых на платформу .NET, типы являются строгими. Хотя среда выполнения допускает анонимный объект, который не имеет заранее определенного именованного типа, тип переменной может не меняться в течение ее времени жизни, поэтому необходимо удалить тип данных Variant. Однако на практике тип «Объект» ведет себя примерно так же.

Настоящее объектно-ориентированное программирование

[ редактировать ]

Visual Basic был объектно-ориентированным языком. Он поддерживал классы, но не другие концепции, которые могли бы сделать его объектно-ориентированным языком. Visual Basic .NET — это настоящий объектно-ориентированный язык со следующими возможностями:

  1. наследование
  2. перегрузка функции

Хотя ни один язык, ориентированный на .NET, не допускает множественного наследования классов, множественное наследование интерфейсов поддерживается.

Переход с COM на NET

[ редактировать ]

Хотя IDE делает разумную работу по сокрытию этого факта, в Visual Basic .NET отсутствует зависимость от объектов ActiveX (хотя существуют механизмы взаимодействия с COM) . в .NET [2] ) в пользу компонентов .NET, предлагающих аналогичную функциональность. Этот сдвиг хорош для разработчика Visual Basic, поскольку большая часть проблем с производительностью Visual Basic связана со стоимостью COM-интерфейса.

Элементарное управление геометрией через дизайнер форм.

[ редактировать ]

Одним из настоящих проклятий в жизни разработчика Visual Basic всегда было написание кода изменения размера. Хотя парадигма WinForms оставляет желать лучшего в отделе управления геометрией перед лицом таких наборов инструментов, как Qt и GTK+ , по крайней мере, разработчик может привязывать виджеты к формам вместо того, чтобы писать кучу кода в обработчиках OnResize.

Опция Явный по умолчанию

[ редактировать ]

В Visual Basic .NET Option Explicit включен по умолчанию.

  1. ^ «Логические и побитовые операторы — Visual Basic» . 15 сентября 2021 г.
  2. ^ «Устаревшая техническая документация Visual Studio 2003» .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ec48e087b15c6af2aea88ec1d7ba1dbc__1700699880
URL1:https://arc.ask3.ru/arc/aa/ec/bc/ec48e087b15c6af2aea88ec1d7ba1dbc.html
Заголовок, (Title) документа по адресу, URL1:
Comparison of Visual Basic and Visual Basic .NET - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)