|
|||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||
|
Вирази, оператори і передача управління
У цьому розділі
представлений базовий «арсенал» VB .NET.
Велика частина матеріалу зводиться до
короткого огляду концепцій,
властивих всім мовам
програмування (наприклад,
змінних і команд циклу), і
опису базових типів даних, в
основному різних чисел і рядків.
Читачі, добре знайомі з Vb6,
можуть нашвидку перегорнути цей розділ.
Лише у декількох прикладах
цього розділу зустрічається реальний
код, який може використовуватися
в серйозних програмах VB .NET. Річ у тому,
що жодна серйозна програма VB .NET
не обходиться без
об'єктів, побудованих по
шаблонах, званих класами, а ця
тема розглядатиметься в розділі 4. Ми
почнемо з базових конструкцій мови,
тому що інакше нам довелося б
обмежитися примітивними класами,
що не володіють
ніякою практичною цінністю.
У цьому розділі не розглядаються
класи, визначувані
користувачем, і продемонстровані
лише прості
приклади використання вбудованих
класів .NET Framework, що
володіють виключно широкими
можливостями. Що ж з
цього виходить? Як не дивно — те,
що написані в цьому розділі
програми вельми близькі по стилю
до традиційного
програмування ранньої епохи BASIC і
епохи Fortran і COBOL, що навіть
передувала нею (якщо не рахувати
деяких дивних, але
необхідних синтаксичних конструкцій). Зокрема, на
відміну від програм з подальших розділів,
у них завжди чітке визначені
почало і кінець, і управління
передається від початку до кінця (хоча
управління може передаватися
спеціальними командами). Як мовилося
у введенні, ми постараємося
приводити програми, написані в
нормальному стилі .NET, по можливості
уникаючи штучної
сумісності з Vb6.
Кожен додаток VB .NET
повинно мати точку вто§а. У точці
входу міститься код, що автоматично
виконується при запуску, після
чого управління передається решті
коду програми. У
щодо простих графічних застосуваннях
точка входу може
асоціюватися з початковою формою,
як в Vb6. Але як було показано
в розділі 1, код форм Windows достатньо
складний і пошук точки входу
може викликати певні утруднення.
У цьому розділі розглядаються
тільки консольні застосування,
що працюють в
консольному вікні (на зразок вікна
сеансу DOS). Так, VB .NET дозволяє легко
створювати традиційні консольні
застосування, часто вживані при
програмуванні серверних
сценаріїв: Точкою входу
консольного застосування є
процедура Sub Mai n модуля (аналог
процедури Sub Mai n в Vb6). Якщо вибрати в
діалоговому вікні New Project значок
консольного застосування (Console Application),
VB .NET автоматично генерує «скелет»
додатку з точкою входу —
процедурою Sub Main: Module
Module1 Sub Main() End Sub End Module На відміну від Vb6,
в першому рядку задається ім'я модуля
(команда виділена жирним шрифтом). У
даному прикладі використовується ім'я Modul
el, прийняте за умовчанням. По
правилах ім'я модуля повинне
збігатися з ім'ям файлу. Допустимо,
ви змінили ім'я модуля в першому
рядку: Module Testl При спробі
запустити консольне додатки
виводиться повідомлення про помилку: Startup code 'Sub Main' was specified in 'Test.Modulel'. but 'Test.Modulel'
was not found Перейменування
модуля після його створення
виконується таким чином:
По аналогії з Vb6
програма VB .NET (рішення) може
складатися з декількох модулів, але
наявність процедури Sub Main допускається
тільки в одному модулі. Додаток
завершується після досягнення команди
End Sub процедури Sub Mai n. Наприклад,
легендарна програма «Hello world»
виглядає таким чином: Module
Modul el Sub Main() Console.WriteLine("Hello
world") End Sub End Module Якщо запустити
цю програму в IDE, на екрані дуже
швидко промайне (і тут же зникне)
вікно DOS із словами «Hello world». Вікно
закривається після закінчення
обробки команди End Sub.
Мал. 3.1. Діалогове вікно
властивостей консольного застосування Якщо включити в
програму рядок, виділений нижче
жирним шрифтом, консольне вікно
залишається на екрані до натиснення
клавіші Enter (надзвичайно корисний
метод Readline() описаний нижчим). Module
Modulel Sub Main() Console.WriteLine("Hello world") Console. Readline() End Sub End Module Не дивлячись на простоту, ці дві програми демонструють одну з ключових особливостей програмування VB .NET (і взагалі програмування на будь-якій об'єктно-орієнтованій мові): ви звертаєтеся до об'єктів із запитом на виконання операцій. По аналогії з Vb6 крапка («.») використовується для звернення до членів об'єктів і класів. Хоча зазвичай при виклику указується об'єкт (конкретний екземпляр, створений на базі класу), в деяких випадках замість нього указується ім'я класу. Як приклад візьмемо наступний рядок: Console.WriteLine("Hellо
world") У ній
викликається метод Wri teli ne класу Console,
призначений для виведення тексту
з подальшим перекладом рядка (у
об'єктно-орієнтованому
програмуванні, як і в Vb6,
функції класів зазвичай називаються методами).
Метод Writeline належить до загальних (shared)
методів, також званих методами
класу. Загальні методи детально
описані в главе4. При виклику
Writeline текст, що виводиться,
берете в лапок і поміщається в
круглі дужки. У другу версію
програми «Hello world» доданий виклик
методу Readli ne, чекаючого натиснення
клавіші Enter (метод Readli ne зазвичай
використовується в правій частині
команди привласнення, щоб
введений з консолі текст був
збережений в заданій змінній —
див. наступна примітка). Користувачам
попередніх версій VB слід врахувати,
що круглі дужки при виклику
методів обов'язкові — зазвичай IDE
додає їх автоматично, але
краще не забувати про це. Ключове
слово Call дозволене, але тепер в нім
немає необхідності.
При введенні
програм VB .NET у зовнішньому редакторові
ви не зможете скористатися
засобами Intellisense. Ми рекомендуємо
використовувати IDE, оскільки
технологія Intellisense значно
спрощує програмування в такому
складному середовищі, як .NET (звичайно, для
цього вам доведеться перейти від
безкоштовно поширюваного .NET SDK до
Visual Studio). Редактор IDE навіть
виправляє деякі
поширені помилки —
наприклад, пропуск круглих дужок
при виклику деяких методів. Проте VS .NET
IDE намагається оформляти програми VB .NET
по своїх правилах. Перші символи
ключових слів перетворяться до
верхнього регістра, а рядки
доповнюються пропусками для зручності
читання (End SUB перетвориться в End Sub і т.
д.). Регістр символів в іменах
методів VB .NET визначається по схемі
Pascal (слова починаються з прописних
букв, решта букв рядкових).
Альтернативна схема вибору
регістра (writeline) для методів VB .NET
зазвичай не використовується. Номери рядків в
командах VB .NET практично не
використовуються, хоча рядки
програми можуть нумеруватися,
причому кожна команда зазвичай
розташована в окремому рядку.
Щоб продовжити команду в
наступному рядку, завершите її
символом підкреслення (_),
відокремленим одним або декількома
пропусками. Таким чином, якщо
рядок не завершується символом
підкреслення, натиснення клавіші Enter
є ознакою кінця команди (у
Visual Basic команди не разманд можна
розмістити в одному рядку, розділивши
їх символом «:», але зазвичай так не
поступають. Якщо введений рядок не
поміщається у вікні, IDE прокручує
рядок управо в міру
необхідності.
Коментарі в VB
.NET, як і в будь-якій мові
програмування, необов'язкові.
Вони не обробляються компілятором
і відповідно не займають місця
в коді, що відкомпілювався. У VB
.NET існує два варіанти
оформлення коментарів. У першому,
поширенішому варіанті
коментар починається з апострофа: Sub Main() Console.WriteLine("Hello
world") ' Ігнорувати значення, повертане методом
Readline Console. Readline() End Sub У другому
варіанті використовується старе
ключове слово Rem, яке
з'явилося в BASIC на початку 1960-х років! При включенні коментарів
в кінець рядка простіше скористатися
апострофом, оскільки
ключове слово Rem доведеться
відокремлювати двокрапкою. У VB .NET не
передбачено мовних засобів для
коментування декількох рядків,
хоча на панелі інструментів присутня
кнопка, що спрощує
створення таких коментарів.
|
|
|||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||