Мова програмування Visual Basic .NET

Хоча мови програмування керований C++, С# та Visual Basic .NET (VB) семантично мають практично однакові можливості, оскільки всі вони базуються на загальній специфікації мов програмування .NET (CLS – Common Language Specification), синтаксично мова Visual Basic дуже відрізняється від мов C++ та C#.

10.3.1 Інструкції мови VB

Блоки інструкцій мови VB завершуються інструкцією END, і декілька інструкцій не можуть знаходитися в одному рядку. В С++ блоки беруться в фігурні дужки {}, а положення розривів рядків неістотно, оскільки інструкції завжди завершуються символом крапки з комою, чого немає у VB. Наприклад, хоча наступний запис потворний і погано читається, за правилами мови С++ він цілком припустимий:

 

for (int j = 0; j < 18; j++){if (j == 5) f(j); else return;}

 

Синтаксис С++ в меншій мірі обмежує програміста, ніж синтаксис VB, проте при написанні програм на C++ велику роль грає вибір правильного стилю програмування.

10.3.2 Типи даних та змінні

Хоча багато типів даних VB і С++ по можливостях нерідко перекриваються, між ними існують важливі відмінності; до того ж однакові назви в обох мовах іноді відносяться до різних типів даних.

Найважливіша відмінність полягає у тому, що при оголошенні і використанні змінних в С++ діють більш жорсткі обмеження. Всі змінні мають бути оголошені перед використанням, причому оголошені з конкретним типом — в С++ не існує типу Variant, здатного містити довільні дані, що часто застосовується в програмах на VB.

Для оголошення змінних у VB використовується спеціальна інструкція:

 

Dim ім'я_змінної As ім'я_типу

 

В мові C++ змінна оголошується простим зазначенням типу перед ім'ям змінної; аналога інструкції Dim в C++ не існує.

В мові Visual Basic існує два цілочисельних типів даних: Integer і Long. Дійсні типи Single та Double в VB відповідають типам float та double в C++, а типу Boolean відповідає тип bool.

Багато вбудованих рядкових функцій VB не підтримуються в рядковому типі С++. В мові VB є функції для пошуку рядків, вибірки підрядків і виконання інших операцій. Конкатенація рядків виконується оператором & замість оператора +.

В мові С++ першому елементу масиву завжди відповідає індекс 0. Неможливо змінити верхню або нижню межу масиву або змінити його розмір, як це робиться на мові VB інструкцією ReDim. Втім, в просторі імен System::Collection керованого C++ разом з іншими класами-колекціями є тип ArrayList, що допускає зміну розміру масивів.