:: Меню ::

Головна
  • Про сайт
  • Введення
  • Середовище програмування VB .NET: Visual Studio .NET
  • Вирази, оператори і передача управління
  • Класи і об'єкти
  •  Спадкоємство і інтерфейси
  • Обробка подій і делегати
  • Обробка помилок в VB .NET
  • Форми Windows, графічний вивід і друк
  • Уведення-виведення
  •  Багатопотокові застосування
  • Підтримка баз-даних в VB .NET
  • Короткий огляд ASP .NET
  • Складки .NET, установка додатків і COM Interop
  • Книга для гостей
    Контакти
    Добавити у вибране

    :: Друзі ::

     
     

    :: Лічильники ::

    = =

     

     

     

     

    Змінні і привласнення

    Імена змінних в VB .NET мають довжину до 255 символів і зазвичай починаються з букви в кодуванні Unicode (за додатковою інформацією про Unicode звертайтеся на сайт www.unicode.org), хоча також допускається символ підкреслення. Далі слідує довільна комбінація букв, цифр і символів підкреслення. Всі символи імені є значущими, але регістр символів ігнорується (як взагалі в VB .NET); вважається, що firstbase і firstbase — одна і та ж змінна. Привласнення виконується за допомогою знаку = , як і в раніших версіях VB:

    theyear = 2001

    У .NET Framework використовуються нові правила привласнення імен змінним, що помітно змінилися в порівнянні з Vb6. У відповідності рекомендаціями, приведеними в MSDN, застосовувати угорський запис небажано, а значущі імена змінних (тобто що не складаються з однієї букви, як i або t) повинні оформлятися в альтернативній схемі вибору регістра. У колишніх версіях VB зазвичай використовувалася схема Pascal.

    Імена змінних не можуть збігатися з послідовностями, зарезервованими VB .NET (список для поточної версії приведений в таблиці. 3.1), проте це обмеження можна обійти, уклавши ім'я змінної в квадратні дужки. Наприклад, змінна не може називатися Loop, а ім'я [Loop] підійде — хоча робити це не рекомендується. Зарезервовані слова усередині імен змінних допустимі (скажімо, loopit — цілком нормальне ім'я). При спробі використання ключового слова як ім'я змінної VB .NET підкреслює його і інформує про помилку (за допомогою екранної підказки).

    Таблиця 3.1. Ключові слова поточної версії VB .NET

    Addhandler
    Addressof
    Alias
    And
    Ansi
    As
    Assembly
    Auto
    Binary
    Bitand
    Bitnot
    Bitor
    Bitxor
    Boolean
    Byref
    Byte
    Byval
    Call
    Case
    Catch
    Cbool
    Cbyte
    Cchar
    Cdate
    Cdec
    Cdbl
    Char
    Cint
    Class
    Clng
    Cobj
    Compare
    Const
    Cshort
    Csng
    Cstr
    Ctype
    Date
    Decimal
    Declare
    Default
    Delegate
    Dim
    Do
    Double
    Each
    Else
    Elself
    End
    Enum
    Erase
    Error
    Event
    Exit
    Explicit
    Externalsource
    False
    Finally
    For
    Friend
    Function
    Get
    Gettype
    Goto
    Handles
    If
    Implements
    Imports
    In
    Inherits
    Integer
    Interface
    Is
    Lib
    Like
    Long
    Loop
    Me
    Mod
    Module
    Mustlnherit
    Mustoverride
    Mybase
    Myclass
    Namespace
    Next
    New
    Not
    Nothing
    Notlnheritable
    Notoverridable
    Object
    Off
    On
    Option
    Optional
    Or
    Overloads
    Overridable
    Overides
    Ра ram Array
    Preserve
    Private
    Property
    Protected
    Public
    Raiseevent
    Readonly
    Re Dim
    REM
    Removehandler
    Resume
    Return
    Select
    Set
    Shadows
    Shared
    Short
    Single
    Static
    Step
    Stop
    Strict
    String
    Structure
    Sub
    Synclock
    Text
    Then
    Throw
    To
    True
    Try
    Typeof
    Unicode
    Until
    When
    While
    With
    With Events
    Writeonly
    Xor



    Літерали і їх відповідність типам даних

    Літералом називається послідовність символів, яка може інтерпретуватися як значення одне з примітивних типів. Але з типами (навіть примітивними) в VB .NET справа йде дещо складніше, ніж в раніших версіях VB.

    Хоча можливість безпосередньої інтерпретації даних передбачена в будь-якій мові програмування, вирішити, як саме слід інтерпретувати ті або інші дані, іноді буває непросто. Напевно, всі погодяться з тим, що 3 — це число 3 і його слід інтерпретувати саме так. Але що таке число 3 з погляду компілятора? Скільки байт пам'яті слідує під нього виділити? Теоретично для зберігання числа 3 хватіт 2 битий, але в сучасних мовах програмування зазвичай відбувається не так.

    Отже, компілятор повинен проаналізувати літерал і ухвалити необхідні рішення, тому ви винні по можливості точніше описати, що ви маєте на увазі, не покладаючись на розумність компілятора. Повернемося наприклад з простим числом 3. У VB .NET воно може бути (серед іншого):

    • Байт: фактично ви повідомляєте компілятор, що для зберігання числа слід виділити мінімальний об'єм пам'яті.
    • Коротке ціле: старий тип Integer з Vb6.
    • Ціле .NET: старий тип Long з Vb6 (компілятор виділяє для зберігання числа 4 байти).

    На щастя, символ 3 ніколи автоматично не інтерпретуватиметься як строкова константа (якщо не перевизначати стандартну логіку VB). У VB .NET рядки і числа за умовчанням не змішуються — детальніше ця тема розглядається в розділі «Перетворення різнотипних значень» цього розділу.

    З погляду компілятора простий констатації «це число 3» недостатньо. Зрозуміло, VB .NET, як і будь-яка мова програмування, дозволяє уточнити сенс літерала. Наприклад, 31 — літерал типу Integer із значенням 3, а літерал "3" відноситься до строкового типу String (тип String розглядається нижчим в цьому розділі; він декілька відрізняється від строкового типу в колишніх версіях VB).

    Примітивні типи можна розглядати як атомарні елементи мови, хоча в VB .NET вони є псевдонімами для класів з бібліотеки System.

    У змінній, оголошеній з примітивним типом, зберігаються значення вказаного типу. Нижче перераховані примітивні числові типи VB .NET.

    • Byte: 1-байтове ціле без знаку в інтервалі від 0 до 255.
    • Short: 2-байтове ціле із знаком в інтервалі від -32 768 до 32 767, аналог типу Integer в колишніх версіях VB. Ознакою типу Short в літералах є суфікс S — наприклад, 237s.
    • Integer: 4-байтове ціле із знаком в інтервалі від -2 147 483 648 до 2 147 483 647, аналог типу Long в колишніх версіях VB. Ознакою типу Integer в літералах є суфікс I — наприклад, 2371.

    Якщо суфікс не вказаний, а число входить в інтервал допустимих значень типу Integer, за умовчанням воно зберігається у форматі Integer. Це пов'язано з тим, що на 32-розрядних процесорах тип Integer обробляється ефективніше за решту типів.

    • Long: 8-байтове ціле із знаком в інтервалі від -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807. Не має аналогів в колишніх версіях VB. Ознакою типу Long в літералах є суфікс L — наприклад, 2371.

    При оголошенні числових змінних можна використовувати старі суфікси типів %, & і так далі — наприклад, літерал 1234% відноситься до типу Long. Але при цьому слід пам'ятати, що в Vb6 і VB .NET ці суфікси мають різний сенс, оскільки тип Integer VB .NET відповідає типу Long V86. З цієї причини використовувати старий синтаксис не рекомендується.

    Будь-який цілочисельний літерал можна записати в шістнадцятиричній системі числення (по підставі 16), для чого він забезпечується префіксом &Н. Наприклад, літерал &HF відповідає десятковому числу 15, що зберігається у форматі Integer, оскільки суфікс типу не вказаний, а число входить в інтервал допустимих значень типу Integer. Числа, записані у вісімковій системі числення (по підставі 8), забезпечуються префіксом &0.

    При виконанні операцій з дійсними числами використовуються наступні типи:

    • Single: 4-байтове дійсне число. Ознакою типу Single в літералах є суфікс F — наприклад, 1.23f або 3f.
    • Double: 8-байтове дійсне число. Якщо в числі з десятковою крапкою не вказаний суфікс, за умовчанням воно зберігається у форматі Double. Це пов'язано з тим, що Double працює ефективніше Single; на 32-розрядних процесорах Double є основним типом для виконання речових операцій. Ознакою типу Double в літералах є суфікс R (або #).

    Новий тип Decimal прийшов на зміну старому типу Currency, що використався в колишніх версіях VB. Він використовується в ситуаціях, коли помилки округлення недопустимі.

    • Decimal: 12-байтове дійсне число, що гарантує відсутність помилок округлення у величезному інтервалі допустимих значень з 28 значущими цифрами. Формальне визначення свідчить, що тип Decimal призначений для зберігання чисел з мантисою в інтервалі ±79 228 162 514 264 337 593 543 950 335, масштабованих до довільного порядку за умови, що кількість значущих цифр не перевищує 28. Таким чином, найменше число, що представляється типом Decimal, рівне ±0.0000000000000000000000000001. Ознакою типу Decimal в літералах є суфікс D.

    Застосування суфікса типу в літералах допомагає уникнути плутанини і випадкових помилок переповнювання, що виникають при множенні двох чисел. При виконанні наступної команди:

    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. Відповідність між числовими типами

    Тип VB. NET
    Тип .NET Framework
    Тип Vb6
    Byte
    System. Byte
    Byte
    Boolean
    System. Boolean
    Boolean
    Decimal
    System. Decimal



    Currency
    Double
    System. Double
    Double
    Short
    System. Intl6
    Integer
    Integer
    System.Int32
    Long
    Long
    System.Int64

    Single
    System. Single
    Single

    Інші літерали

    Окрім числових літералів також існують літерали типів Boolean, Date і Char. Тип даних Bool ean приймає значення True і Fal se. У VB .NET він представляється 4 байтами (на відміну від 2 байт в Vb6).

    У VB .NET бета-версиі 1 значення True було рівне +1 (як і в інших мовах .NET). Починаючи з бета-версиі 2 воно знову стало рівне -1. Кажучи точніше, в порозрядних операціях і при перетворенні до числових типів значення True рівне -1, а не 1. Але якщо логічна величина VB .NET передається за межі VB, при приведенні до числового типу нової мови вона вважається за рівну 1. Мабуть, це рішення було помилковим, оскільки одній з цілей, поставлених при розробці .NET, було забезпечення максимальної міжмовної сумісності. Поки ви обмежуєтеся вбудованими константами True і False, все буде нормально, та варто перейти до конкретних числових значень — і у вас можуть виникнути проблеми.

    Тип даних Date представляє дату і/або час. Як ЯРЕМ в Vb5, такі літерали полягають між символами #...# — наприклад, #jan 1. 2001#. Якщо час не вказаний), передбачається, що літерал відповідає півночі вказаної дати.

    Тип Date в VB .NET не перетвориться до типу Double. Зокрема, з цього виходить, що з датами не можна проводити математичні обчислення — наприклад, обчислити завтрашню дату командою Today+1.

    Тип даних Char представляє один символ Unicode. Об'єм кодування Unicode (65 536 символів) цілком достатній для представлення всіх існуючих алфавітів. Зазвичай символ полягає в лапки, за якими слідує префікс З (наприклад, "Н"с), але ви також можете скористатися вбудованою функцією Chr і вказати числовий код символу Unicode. Наприклад, запис Chr(&H2153) представляє символ 1/3 кодуванню Unicode, хоча в деяких операційних системах цей символ не відображатиметься під час роботи програми. Якщо укласти один символ в лапки без суфікса «С», ви отримаєте тип Stri ng замість Char, а автоматичне перетворення між цими типами не підтримується (команда Opti on Strict описана нижчим в цьому розділі).

     




    :: Наша кнопка ::

    Отримати код:

    Підтримайте наш сайт і розмістіть нашу кнопку на своєму ресурсі.


    :: Реклама ::

    Скачати безкоштовно програму Microsoft Front Page 2003


    :: Посилання ::

    -


     

     

     


    Copyright ©