Сравнение Visual Basic и Visual Basic .NET - Comparison of Visual Basic and Visual Basic .NET - Wikipedia

Visual Basic .NET был выпущен Microsoft в 2002 году как преемник оригинального Visual Basic компьютер язык программирования. Это было реализовано на .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 позволяет +=, -=, *=, /=, \=, ^=, и &= составные операторы, чтобы длинные строки вроде:

Переменная = Переменная + 1

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

Переменная += 1

Однако операторы инкремента и декремента нет поддерживается.

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

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

Если фу() И бар() потом  'код здесь выполняется, если foo () и bar () оба возвращают True, однако, если foo () возвращает False, bar () по-прежнему оцениваетсяКонец Если

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

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

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

Свойства: Let and 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 Common Language Runtime может поддерживать массивы с любым базовым значением, Visual Basic .NET и C # предоставляют только массивы и списки с отсчетом от нуля, а .NET Спецификация общего языка требует отсчитываемых от нуля массивов для взаимодействия между языками .NET.

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

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

Тип данных варианта отсутствует

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

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

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

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

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

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

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

Управление элементарной геометрией через конструктор форм

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

Параметр Явный по умолчанию

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

внешняя ссылка

Рекомендации