|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Змінні і привласнення
Імена змінних в VB .NET мають довжину до 255 символів і зазвичай починаються з букви в кодуванні Unicode (за додатковою інформацією про Unicode звертайтеся на сайт www.unicode.org), хоча також допускається символ підкреслення. Далі слідує довільна комбінація букв, цифр і символів підкреслення. Всі символи імені є значущими, але регістр символів ігнорується (як взагалі в VB .NET); вважається, що firstbase і firstbase — одна і та ж змінна. Привласнення виконується за допомогою знаку = , як і в раніших версіях VB: theyear
= 2001
Імена змінних не можуть збігатися з послідовностями, зарезервованими VB .NET (список для поточної версії приведений в таблиці. 3.1), проте це обмеження можна обійти, уклавши ім'я змінної в квадратні дужки. Наприклад, змінна не може називатися Loop, а ім'я [Loop] підійде — хоча робити це не рекомендується. Зарезервовані слова усередині імен змінних допустимі (скажімо, loopit — цілком нормальне ім'я). При спробі використання ключового слова як ім'я змінної VB .NET підкреслює його і інформує про помилку (за допомогою екранної підказки). Таблиця 3.1. Ключові
слова поточної версії VB .NET
Літерали і їх відповідність типам даних
Літералом
називається послідовність
символів, яка може
інтерпретуватися як значення одне з
примітивних типів. Але з типами
(навіть примітивними) в VB .NET справа
йде дещо складніше, ніж в
раніших версіях VB.
Хоча можливість
безпосередньої інтерпретації
даних передбачена в будь-якій
мові програмування, вирішити,
як саме слід інтерпретувати
ті або інші дані, іноді
буває непросто. Напевно, всі
погодяться з тим, що 3 — це число 3 і
його слід інтерпретувати
саме так. Але що таке число 3 з
погляду компілятора? Скільки байт
пам'яті слідує під нього виділити?
Теоретично для зберігання числа 3
хватіт 2 битий, але в сучасних
мовах програмування зазвичай
відбувається не так.
Отже,
компілятор повинен проаналізувати літерал
і ухвалити необхідні рішення,
тому ви винні по
можливості точніше описати, що ви маєте на
увазі, не покладаючись
на розумність компілятора. Повернемося наприклад
з простим числом 3. У VB .NET воно
може бути (серед іншого):
На щастя, символ 3 ніколи
автоматично не
інтерпретуватиметься як строкова константа (якщо
не перевизначати стандартну
логіку VB). У VB .NET рядки і числа
за умовчанням не змішуються —
детальніше ця тема розглядається
в розділі «Перетворення
різнотипних значень» цього розділу. З погляду
компілятора простий констатації «це
число 3» недостатньо. Зрозуміло, VB
.NET, як і будь-яка мова
програмування, дозволяє
уточнити сенс літерала. Наприклад,
31 — літерал типу Integer із значенням 3,
а літерал "3" відноситься до
строкового типу String (тип String
розглядається нижчим в цьому розділі;
він декілька відрізняється від
строкового типу в колишніх версіях VB).
У змінній,
оголошеній з примітивним типом,
зберігаються значення вказаного типу.
Нижче перераховані примітивні
числові типи VB .NET.
Будь-який цілочисельний
літерал можна записати
в шістнадцятиричній системі
числення (по підставі 16), для
чого він забезпечується префіксом &Н.
Наприклад, літерал &HF відповідає
десятковому числу 15, що
зберігається у форматі Integer,
оскільки суфікс типу не вказаний, а
число входить в інтервал допустимих
значень типу Integer. Числа,
записані у вісімковій системі
числення (по підставі 8),
забезпечуються префіксом &0. При виконанні
операцій з дійсними числами
використовуються наступні типи:
Новий тип Decimal прийшов
на зміну старому типу Currency, що
використався в колишніх
версіях VB. Він використовується в
ситуаціях, коли помилки округлення
недопустимі.
Застосування суфікса
типу в літералах допомагає уникнути
плутанини і випадкових помилок
переповнювання, що виникають
при множенні двох чисел. При
виконанні наступної команди: Console.WriteLine(12345678
* 4567) компілятор
видає помилку: This constant expression produces а value that is not representable in type System.Integer. Проблема вирішується за допомогою суфікса типу Long: Console.WriteLine(123456781
* 4567) Загальні методи Maxvalue
і Minvalue, що асоціюються з
типом, повертають відповідно
верхню і нижню межі інтервалу
допустимих значень. Приклад: Console.WriteLine(Integer.MaxValue) У таблиці. 3.2
зібрані дані про відповідність
числових типів VB .NET, типів .NET Framework і
їх аналогів з Vb6 (якщо вони є). Таблиця 3.2.
Відповідність між числовими типами
Окрім числових
літералів також існують
літерали типів Boolean, Date і Char. Тип
даних Bool ean приймає значення True і
Fal se. У VB .NET він представляється 4
байтами (на відміну від 2 байт в Vb6).
Тип даних Date
представляє дату і/або час. Як
ЯРЕМ в Vb5, такі літерали полягають
між символами #...# — наприклад, #jan 1.
2001#. Якщо час не вказаний),
передбачається, що літерал
відповідає півночі вказаної
дати.
Тип даних
Char представляє один символ
Unicode. Об'єм кодування Unicode (65 536
символів) цілком достатній
для представлення всіх
існуючих алфавітів. Зазвичай
символ полягає в лапки, за
якими слідує префікс З (наприклад,
"Н"с), але ви також можете
скористатися вбудованою функцією Chr і
вказати числовий код символу Unicode.
Наприклад, запис Chr(&H2153)
представляє символ 1/3 кодуванню Unicode, хоча
в деяких операційних
системах цей символ не відображатиметься
під час роботи програми. Якщо
укласти один символ в лапки без
суфікса «С», ви отримаєте тип Stri ng
замість Char, а автоматичне
перетворення між цими типами
не підтримується (команда Opti on Strict
описана нижчим в цьому розділі).
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||