3. Базовые конструкции языка

E-mail Печать PDF
Рейтинг пользователей: / 1
ХудшийЛучший 
Индекс материала
3. Базовые конструкции языка
Переменные
Области видимости переменных
Константы
Строки
Обработка даты и времени
Массивы
Перечисления
Структуры
Коллекции
Операторы сравнения
Процедуры и функции
Все страницы

Базовые конструкции языка

 

Комментарии

В VB .NET комментарии оформляются с помощью апострофа или с помощью ключевого слова Rem. Комментирование нескольких строк не предусмотрено, но на панели инструментов есть кнопка, упрощающая создание таких комментариев.

Типы Данных / MinAndMax

 
 

Типы данных

Литералом называется последовательность символов, которая может интерпретироваться как значение одного из типов данных.

Наименование

Описание

Byte

1-байтовое целое без знака

Short

2-байтовое целое со знаком. Литерал - суффикс S, например, 237S.

Integer

4-байтовое целое со знаком. Литерал - суффикс I, например, 237I.

Long

8-байтовое целое со знаком. Литерал - суффикс L, например, 237L.

Single

4-байтовое вещественное число Литерал - F. 1.23F или 3F.

Double

8-байтовое вещественное число Литерал - суффикс R.

Decimal

12-байтовое вещественное число, гарантирующее отсутствие ошибок округления. Аналог типа Currency. Литерал - суффикс D.

Boolean

4 байта. Принимает значения True и False.

Date

Дата и/или время.

Char

Один символ Unicode.

String

Строка символов.

Object

Общие переменные, ссылающиеся на объекты разных типов.

Методы MaxValue и MinValue возвращают верхнюю и нижнюю границы интервала допустимых значений типа данных.

Пример: вывести на консоль диапазоны значений типов данных.

 


Переменные

Имена переменных начинаются с буквы, допускается символ подчеркивания. Далее произвольная комбинация букв, цифр и символов подчеркивания. Длина имени до 255 символов. Регистр игнорируется. Присваивание при помощи знака «=».

Например: TheYear=2006.

Значение строковой переменной должно быть заключено в кавычки.

Например: strName = «Иванов Иван Иванович».

Значение переменной даты и времени должно быть заключено в #.

Например: dteNewDate = #28/03/2003#.

Имена не могут совпадать с зарезервированными словами, но можно (не рекомендуется) заключить имя переменной в квадратные скобки. Например, [Loop]. Зарезервированные слова внутри имен переменных допустимы. Например, LoopIt.

Переменные объявляются в процедурах и функциях при помощи ключевых слов Dim и As. Dim foo As String

По умолчанию, в VB .NET установлен режим Option Explicit. Это означает, что переменные должны объявляться перед использованием. Если тип переменной не указан, она будет иметь тип данных Object.

В VB .NET поддерживается инициализация переменных при объявлении. Например: Dim salesTax As Decimal = 0.0825D

Если переменная не была инициализирована при объявлении, ей присваивается стандартное значение, соответствующее ее типу, например, числовым переменным присваивается 0.

Также возможно объявление (но не инициализация) нескольких переменных в одной строке. Пример: Dim i, j, k As Integer

 


Области видимости переменных

Область видимости переменной - это область кода программы, в пределах которой объявленная переменная доступна.

1. Область видимости на уровне блока допускает использование переменной только внутри конструкции, состоящей из двух инструкций. Например, If . . . EndIf.

2. Область видимости на уровне процедуры допускает использование переменной только внутри процедуры, в которой она была описана.

3. Область видимости на уровне модуля допускает использование переменной всеми процедурами, находящимися внутри модуля, в котором была описана переменная. Описания таких переменных необходимо помещать в начало модуля.

4. Область видимости на глобальном уровне допускает использование переменной всеми процедурами из всех модулей программы. Глобальные переменные описываются в начале модуля с ключевым словом Public.

Статические переменные - это переменные, значения которых сохраняются на протяжении работы всей программы. Описываются с помощью слова Static.

 

Преобразования разнотипных значений

В VB .NET предусмотрен режим жесткой проверки типов Option Strict. При активизации этого режима VB .NET требует, чтобы любые преобразования типов выполнялись явно. Функции явного преобразования типов: CBool (преобразует выражение к типу Boolean), CByte, CInt, CLng, CDate, СDbl, CStr, и т.д.

 


Константы

Константы объявляются по аналогии с переменными, а их имена подчиняются тем же правилам. Тип константы должен быть указан явно. Применение допустимо только в тех областях кода, где она определена.Синтаксис объявления:

Const имя_константы As тип_данных_константы = значение_константы

Например: Const pi As Single = 3.141592653

.NET Framework содержит встроенные глобальные константы. Они являются членами различных классов, поэтому при обращении к ним следует использовать имя класса, например: ControlChars.CrLf.

 

Строки / Strings

 

Строки

В VB .NET не поддерживаются строки фиксированной длины. При изменении длины или символов строки методы класса String создают новую строку на основе существующей. Поэтому необходимо присваивать значение строковой переменной другой строке, или этой же. Например, str = str.ToUpper().

Конкатенация (объединение) строк обычно выполняется оператором &.

При работе со строками можно использовать следующие строковые функции:

Основные строковые функции

Функция

Описание

Asc

Возвращает код ASCII первого символа в строке

Chr

Преобразует число в символ Unicode

GetChar

Возвращает символ с заданным индексом. Индексация начинается с 1. Например, команда GetChar("Hello",2) возвращает символ «е».

InStr

Возвращает позицию первого вхождения одной строки в другой строке

InStrRev

Возвращает позицию последнего вхождения одной строки в другой строке

Join

Объединение строк

Split

Позволяет разбивать строку по заданным разделителям

LCase

Преобразует строку к нижнему региструю (UCase - к верхнему).

Left

Находит или удаляет заданное количество символов от начала строки

Right

Находит или удаляет заданное количество символов в конце строки

Mid

Находит или удаляет символы в строке

Len

Возвращает длину строки

Trim

Удаляет пробелы в начале и конце строки. (LTrim - слева, RTrim - справа.)

Replace

Заменяет одно или более вхождений одной строки в другой строке

 

Также можно использовать методы и свойства класса Sytem.Text.StringBuilder:

Метод/
свойство

Описание

Compare

Сравнивает две строки

Copy

Копирует существующую строку

EndsWith

Завершается ли строка определенной последовательностью символов

IndexOf

Возвращает индекс первого вхождения подстроки в заданной строке

LastlndexOf

Возвращает индекс последнего вхождения подстроки в строке

Insert

Добавляет подстроку в заданную позицию

Remove

Удаляет из строки заданное количество символов

Length

Возвращает количество символов в строке

StartsWith

Начинается ли строка определенной последовательностью символов

Substring

Возвращает подстроку, начинающуюся с заданной позиции

В методах .NET Framework индексация символов в строке начинается с нуля. Регистр текста имеет значение.

Для поиска текста по шаблону используется оператор Like.

Строка = "мышь"

Flag = Строка Like "мышь"              ‘ Flag будет присвоено значение True.

Можно использовать различные групповые символы.

Символ "?" в шаблоне означает, один любой символ. Например: Flag = Строка Like "мыш?". Такому шаблону будут удовлетворять строки мыша, мыши, и т.д.

Символ "*" обозначает произвольное количество любых символов.

Flag = Строка Like "м*ь"                           ‘мышь, моль, магистраль,  и др.

Символ "#" заменяет собой только цифры (от 0 до 9).

Flag = Строка Like "м#"                   ‘мЗ, мО, м9 и т.д.

Для обозначения символов, принадлежащих определенному ряду, используются диапазоны. Flag = Строка Like "[A - Z]". Диапазон заменяет собой только один символ. Отрицание диапазона: [! а - z ].

Для сравнения строк можно использовать операторы >, <, ==, <>.

Вместо пустой строки " ", можно использовать константу String.Empty.

 
 

Дата и время / DateAndTime

 
 

Обработка даты и времени

Тип дата/время хранит в себе одновременно информацию о дате и времени. Используется «американский» тип даты, где первое число обозначает месяц, второе - день, а третье - год. По умолчанию значение времени 00:00:00.

Для сложения даты используется функция DateAdd (чтo_дoбaвляeтcя, сколько_добавляется, исходная_дата).

Возможные значения первого параметра функции DateAdd().

Значение

Строковый эквивалент

Соответствующий временной интервал

DateInterval.Day

d

Дней месяца (от 1 до 31)

DateInterval.DayOfYear

У

Дней года (от 1 до 366)

DateInterval.Hour

h

Часов (от 1 до 24)

DateInterval.Minute

n

Минут (от 1 до 60)

DateInterval.Month

m

Месяцев (от 1 до 12)

DateInterval.Weekday

w

Дней недели (от 1 до 7)

DateInterval.Year

УУУУ

Лет

Для вычитания определенного временного интервала второй параметр функции DateAdd(), должен быть отрицательным.

Для определения интервала между датами используется функция DateDiff(что_сравнивается, дата1, дата2). Возвращаемое значение имеет тип Long. Первый параметр аналогичен первому параметру функции DateAdd().

Для выбора части даты/времени используется функция DatePart (часть_даты, исходная_дата). Возвращаемое функцией значение имеет тип Integer. Первый параметр функции аналогичен первому параметру функции DateAdd().

Для получения текущей даты используется конструкция DateTime.Today. А для получения текущего времени DateTime.Now.

 

Массивы / ArraySort

 

Массивы

В .NET массив является ссылочным типом (reference type). Имена массивов подчиняются тем же правилам, что и имена переменных. Индексация элементов с 0, но можно определять массивы с заданной верхней и нижней границей индекса.

Пример описания массива: Dim A(6) As String

Массивы могут инициализироваться при объявлении.

Dim weekend() As String = {Saturday, Sunday}

Для доступа к конкретному элементу массива необходимо указать его номер в круглых скобках. Например, A(2)=123.

Все массивы VB .NET являются динамическими. Во время работы программы их можно переобъявить с новым размером при помощи команд ReDim (с потерей текущего содержимого) и ReDim Preserve (с сохранением текущего содержимого).

Количество элементов массива можно определить, используя свойство Length. Или применить метод GetUpperBound.

Если необходимо, чтобы в массиве содержались данные разных типов, при создании массива следует выбрать тип Object.

Dim МойМассив As Object

МойМассив(0) = "Иванов"

МойМассив(1) = 56

Visual Basic .NET позволяет создавать многомерные и невыровненые массивы, являющиеся массивами массивов. Например: Private B(4,1) As Integer

Все массивы являются экземплярами класса Array. Класс Array предлагает два метода поиска элементов: простой и двоичный. Для простого метода используются методы IndexOf и LastIndexOf - первое вхождение указанного элемента, или последнее. Метод возвращает индекс найденного элемента или -1. Сравнение выполняется с помощью метода Equals, который возвращает True или False.

Двоичный поиск быстрее, но работает только с отсортированными массивами. Метод BinarySearch сравнивает искомый элемент с элементом в середине массива, и далее методом половинного деления. Сортировка осуществляется методом Sort.

 


Перечисления

Перечисления используются для логической группировки констант и создания списка флагов. Многие константы .NET Framework определены как перечисления. Пример из пространства имен SystemIO:

Public Enum FileAccess

Read = 1

Write

ReadWrite

End Enum

Перечисления всегда являются целыми типами данных. Если не указать значение явно (Read), первому элементу присваивается нулевое значение. Следующим элементам присваиваются значения в порядке возрастания. Перечисление FileAccess можно использовать при работе с классами файлового ввода-вывода. Например: file.Open(FileMode.CreateNew, FileAccess.ReadWrite).

Структуры / Structures

 

Структуры

Структура объединяет в себе переменные вне зависимости от их типов данных.

Structure Клиент

Public Имя As String

Public Адрес As String

Public Код As Integer

End Structure

Структуры относятся к пользовательским типам данных. Необходимо также создать переменную, которая будет представлять структуру: Переменная As Клиент.

Чтобы присвоить значение этой переменной необходимо обратиться к полям структуры через точку. ИмяПеременной.ПеременнаяСтруктуры = НовоеЗначение.

 


Коллекции

Коллекция - это структура данных, работающая как массив, который может расширяться до любых пределов и содержать в себе данные любых типов.

Каждому элементу коллекции назначен уникальный «ключ», который представляет собой строку и позволяет быстро найти нужный элемент коллекции.

Чтобы создать коллекцию, нужно только объявить переменную, которая будет ее представлять: Dim Поставщики As New Collection().

Добавление элемента: ИмяКоллекции.Add (Значение, Ключ).

Например: Поставщики.Add ("Батлер и партнеры", "13").

Определить количество элементов: ИмяКоллекции.Count.

Найти значение: ИмяКоллекции.Item(Ключ), например Поставщики.Item("13").

Удалить данные: ИмяКоллекции.Remove(Ключ).

 


Операторы сравнения

=, <>, <, >, <=, >=. Возвращается True  или False.

 
 

Операторы / MatOperations

 
 

Математические операторы

+, ?, /, \ (целочисленное деление), *, ^, Mod (остаток от деления).

Математические операции в порядке убывания приоритета:

1.     Возведение в степень (^).

2.     Унарный минус (изменение знака числа).

3.     Умножение и деление.

4.     Целочисленное деление.

5.     Вычисление остатка (Mod).

6.     Сложение и вычитание.

7.     Конкатенация строк (&).

8.     Равенство (=), Неравенство (<>).

9.     Больше чем (>) и меньше чем (<).

10.      Больше или равно (>=) и меньше или равно (<=).

11.      Not, And, Or.

Если две операции обладают одинаковым приоритетом, порядок выполнения слева направо. Круглые скобки меняют порядок следования операций.

Сокращенная запись

Эквивалент

А*=В

А = А*В

А+=В

А = А + В

А^=В

А = А^В

А&=В

А = А & В (конкатенация строк)

В .NET Framework существует специальный класс Math, в еоторый входят некоторые математические методы и константы (например, Math.PI и Math.Е).

Общие математические функции класса Math

Математическая функция

Описание

Sqrt

Возвращает квадратный корень

Abs

Возвращает модуль числа

Cos

Возвращает косинус заданного угла. (Sin, Tan)

Acos

Угол, косинус которого равен заданному числу. (Asin, Atan)

Ceiling

Наименьшее целое число, большее либо равное заданному числу

Floor

Наибольшее целое число, большее либо равное заданному числу

Round

Возвращает целое число, ближайшее к заданному числу

Exp

Число е (2,71828182845905), возведенное в заданную степень

Log

Возвращает натуральный логарифм. (Log10)

Max

Возвращает большее из двух заданных чисел. (Min)

 

Логические операторы

Not, And, Or могут выполняться над операндами, имеющими тип Boolean.

 
 

Операторы / IfAndSelect

 
 

Условные операторы

If условие Then действие

Несколько последовательных проверок в секциях Else можно оформить в виде конструкции ElseIf:

If условие Then

Действия

ElseIf условие Then

Действия

Else

Действия

End If

 

Select Case переменная

Case Is значение1

Действия1

Case Is значение2

Действия2

Case Else

Действия Else

End Select

Операторы цикла

Цикл с определенным условием

For переменная = начальное значение To конечное значение Step = шаг

Действия

Next переменная

Значение Step может относиться к любому числовому типу. Для досрочного выхода из цикла используется оператор Exit For.

 

Циклы с неопределенным условием

Цикл, тело которого выполняется минимум один раз (с предусловием).

Do

Действия

Loop Until условие

Ключевое слово Until можно заменить ключевым словом While. При этом следует заменить условие на противоположное.

Do

Действия

Loop While условие

 

Цикл с постусловием.

Do While условие

Действия

Loop

 

Do Until условие

Действия

Loop

Для досрочного выхода из циклов используется оператор Exit Do.

 

Цикл For-Each

For Each переменная In группа

Действия

[Exit For]

Next

 


Процедуры и функции

Разница между процедурами и функциями в том, что функции возвращают некоторое значение, а процедуры нет. Два способа передачи параметров функциям и процедурам: передача по ссылке ByRef и передача по значению ByVаl. При передаче по ссылке, изменения параметра внутри функции приведут к изменению исходного аргумента. По умолчанию в VB .NET параметры передаются по значению.

Процедуры и функции, описанные с ключевым словом Public доступны для использования в пределах проекта, где они описаны, а также в проектах, которые ссылаются на данный проект. С ключевым словом Friend только в пределах проекта, где они описаны. С ключевым словом Private только в пределах модуля или класса.

 

Функции

Определение функции:

Function имя_ф-и (ByVаl арг-т1 As тип, ByRef арг-т2, As тип) As тип

команды

Return выражение ' или имя_функции = выражение

End Function

При выполнении команды Return функция завершается и возвращает значение, указанное после Return. Также поддерживается синтаксис с присваиванием имени функции. Для досрочного выхода из функции используется оператор Exit Function.

В VB. NET существует возможность определения процедур и функций с необязательными аргументами. Для этого перед именем параметра следует указать слово Optional и присвоить параметру значение по умолчанию.

 

Процедуры

Определение процедуры:

Sub имя_процедуры(ByVаl аргумент1 As тип, ByVal аргумент2 As тип, )

команды

End Sub

Вызов процедур осуществляется по имени, указывать ключевое слово Sub не обязательно. Для досрочного выхода из процедуры используется оператор Exit Sub.

 

 

Добавьтe Ваш комментарий

Ваше имя (псевдоним):
Ваш адрес почты:
Заголовок:
Комментарий:

Комментарии

Интересное




Похожие материалы

Партнёры