постоянный
Часто можно встретить код, содержащий постоянные значения, которые повторяются снова и снова. Вы также можете обнаружить, что в коде используются трудно запоминающиеся числа, не имеющие четкого смысла.
В этих случаях константы можно использовать для значительного улучшения читаемости и удобства сопровождения кода. Константы — это осмысленные имена, которые заменяют числовые значения или строки, которые никогда не изменяются. Хотя константы чем-то похожи на переменные, их нельзя изменять как переменные, а константам нельзя присваивать новые значения. Константы происходят из двух источников:
1. Внутренние или системные константы предоставляются приложениями и элементами управления. Константы Visual Basic перечислены в библиотеках объектов Visual Basic (VB) и Visual Basic для приложений (VBA) в «Обозревателе объектов». Другие приложения, предоставляющие библиотеки объектов, такие как Microsoft Excel и Microsoft P Project, также предоставляют списки констант, которые можно использовать с объектами, методами и свойствами приложения. Константы также определяются в библиотеке объектов каждого элемента управления ActiveX. Дополнительную информацию об использовании Обозревателя объектов см. в главе 9 «Программирование с использованием объектов».
2. Символические или определяемые пользователем константы объявляются с помощью оператора Const. Пользовательские константы описаны в следующем разделе «Создание собственных констант».
В Visual Basic имена констант имеют смешанный формат, а их префикс указывает имя библиотеки объектов, в которой определена константа. Константы из библиотек объектов Visual Basic и Visual Basic для приложений начинаются с vb, например vbTileHorizontal.
При разработке префиксов следует стараться избегать случайных конфликтов. Константы с одинаковым именем, но разными значениями присутствовать не должны. Даже если используются префиксы, две библиотеки объектов могут содержать одни и те же константы, представляющие разные значения. В этом случае, на какую константу ссылаются, зависит от того, какая библиотека объектов имеет более высокий приоритет. Сведения об изменении приоритета библиотеки объектов см. в разделе «Диалоговое окно «Ссылки».
Чтобы быть абсолютно уверенным в отсутствии конфликтов имен констант, вы можете уточнить ссылки на константы, используя следующий синтаксис:
[имя_библиотеки.][имя_модуля.]имя_константы
Libname обычно представляет собой имя класса элемента управления или библиотеки. Имя модуля — это имя модуля, в котором определена константа. Constname — постоянное имя. Каждый элемент определен в библиотеке объектов и его можно просмотреть в Обозревателе объектов.
Создайте свои собственные константы
Синтаксис объявления констант следующий :
[Public|Private]Имяконстанты[Astype]=выражение
Имя константы параметра является допустимым символическим именем (правила такие же, как и для создания имен переменных), а выражение состоит из числовой константы или строковой константы и оператора, но в выражении нельзя использовать вызовы функций.
Оператор Const может представлять количества, даты и время:
КонстконПи=3.14159265358979
PublicConstconMaxPlanetsAsInteger=9
ConstconReleaseDate=#1/1/95#
Строковые константы также можно определить с помощью оператора Const:
PublicConstconVersion=07.10.A
ConstconCodeName=Энигма
Несколько объявлений констант можно разместить в одной строке, если они разделены запятыми:
PublicConstconPi=3.14,conMaxPlanets=9,_
conWorldPop=6E 09
Выражение справа от знака равенства (=) часто представляет собой число или литеральную строку, но также может быть выражением, результатом которого является число или строка (хотя выражение не может содержать вызов функции). Вы даже можете определить новые константы, используя ранее определенные константы.
ConstconPi2=conPi*2 После определения константы ее можно поместить в код, чтобы сделать код более читабельным. Например:
StaticSolarSystem(1ToconMaxPlanets)
IfnumPeople>conWorldPopThenExitSub
Установите диапазон определяемых пользователем констант
Как и объявления переменных, операторы Const имеют область действия и используют те же правила:
Чтобы создать константу, существующую только внутри процедуры, объявите константу внутри процедуры.
Чтобы создать константу, действительную для всех процедур в модуле, но не для любого кода вне модуля, объявите константу в разделе объявлений модуля.
Чтобы создать константу, действительную во всем приложении, объявите ее в разделе объявлений стандартного модуля и поместите ключевое слово Public перед Const. Открытые константы не могут быть объявлены в модуле формы или модуле класса.
Более подробную информацию об области действия см. в разделе «Понимание области действия переменных» ранее в этой главе.
Избегайте циклических ссылок
Поскольку константы могут быть определены через другие константы, необходимо соблюдать осторожность, чтобы не создавать циклы или циклические ссылки между более чем двумя константами. Цикл возникает, когда в программе более двух общедоступных констант, и каждая общедоступная константа определяется другой. Например:
'В Модуле1:
PublicConstconA=conB*2 'Во всем приложении
'действителен в'.
'В Модуле2:
PublicConstconB=conA/2 'Во всем приложении
'действителен в'.
Если возникнет цикл, Visual Basic выдаст сообщение об ошибке при попытке запустить приложение. Программу невозможно запустить без разрешения циклической ссылки. Чтобы избежать циклов, общедоступные константы можно ограничить одним модулем или максимум несколькими модулями.
тип данных
Переменная — это место, используемое для хранения значений. У нее есть имя и тип данных. Тип данных переменной определяет, как биты, представляющие эти значения, хранятся в памяти компьютера. Вы также можете указать тип данных переменной при ее объявлении. Все переменные имеют тип данных, определяющий, какие данные можно хранить.
По умолчанию, если тип данных не указан в объявлении, тип данных переменной — Variant. Тип данных Variant подобен хамелеону: он может представлять разные типы данных в разных случаях. Если указанная переменная является переменной Variant, нет необходимости выполнять преобразование между типами данных. Visual Basic автоматически выполнит различные необходимые преобразования.
Однако если вы знаете, что переменная всегда хранит данные определенного типа, и вы объявляете переменную этого конкретного типа, Visual Basic будет обрабатывать эти данные более эффективно. Например, переменную, в которой хранится имя человека, лучше всего представить как тип данных String, поскольку имена всегда состоят из символов.
Помимо переменных, типы данных используются и в других ситуациях. При присвоении значения свойству значение имеет тип данных; параметры функции также имеют тип данных; Фактически, в Visual Basic все, что связано с данными, связано с типами данных.
Вы также можете объявить массив любого примитивного типа.
Подробности. Дополнительные сведения см. в разделе «Массивы» далее в этой главе. В главе 15 «Проектирование с учетом производительности и совместимости» также обсуждается повышение производительности приложений за счет выбора типов данных.
Объявляйте переменные с типами данных
Прежде чем использовать переменную, не являющуюся Variant, вы должны объявить ее как Astype, используя оператор Private, Public, Dim или Static. Например, следующие операторы объявляют переменные типа Integer, Double, String и Currency соответственно:
PrivateIAsInteger
DimAmtAsDouble
СтатическоеВашеИмяAsString
PublicBillsPaidAsCurrency
Оператор объявления может объединять несколько объявлений, см. следующий оператор:
PrivateIAsInteger,AmtAsDouble
PrivateYourNameAsString,BillsPaidAsCurrency
PrivateTest, Сумма, JAsInteger
Обратите внимание: если тип данных не указан, указанная переменная имеет тип по умолчанию. В приведенном выше примере переменные Test и Amount имеют тип данных Variant. Если ваш опыт работы с другими языками программирования привел вас к убеждению, что все переменные в одном операторе объявления имеют один и тот же указанный тип данных (в данном случае Integer), то результаты здесь могут быть обновленными.
Числовой тип данных
VisualBasic поддерживает несколько числовых типов данных: Integer (целое число), Long (длинное целое число), Single (с плавающей запятой одинарной точности), Double (с плавающей запятой двойной точности) и Currency (валюта). Числовые типы обычно занимают меньше места для хранения, чем типы Variant.
Если вы знаете, что переменная всегда будет хранить целые числа (например, 12), а не числа с десятичной точкой (например, 3,57), вам следует объявить ее как тип Integer или Long. Целые числа выполняют операции быстрее и занимают меньше памяти, чем другие типы данных. Целочисленные типы особенно полезны при использовании в качестве переменных-счетчиков в циклах For...Next.
Дополнительные сведения о структурах управления см . в разделе «Обзор структур управления» далее в этой главе. Если переменные содержат десятичные дроби, их можно объявить как переменные Single, Double или Currency. Тип данных «Валюта» поддерживает 4 цифры справа от десятичной точки и 15 цифр слева от десятичной точки. Это точный тип данных с фиксированной точкой, подходящий для расчетов в валюте. Числа с плавающей запятой (одинарные и двойные) имеют гораздо больший допустимый диапазон, чем денежный, но возможны небольшие ошибки переноса.
Обратите внимание, что значения с плавающей запятой могут быть представлены как mmmEeee или mmmDeee, где mmm — мантисса, а eee — показатель степени (возведенный в десятичную степень). Максимальное положительное значение типа данных Single — 3,402823E 38, или 3,4 раза по 10 в степени 38; максимальное положительное значение типа данных Double — 1,79769313486232D 308, или 1,8 раза по 10 в степени 308. Использование D для разделения частей мантиссы и показателя степени числового литерала приводит к тому, что значение обрабатывается как тип данных Double. Аналогично, использование E таким образом приводит к тому, что значение обрабатывается как одиночный тип данных.
Тип данных байт
Если переменная содержит двоичное число, объявите ее как массив типа данных Byte (массивы обсуждаются в разделе «Массивы» далее в этой главе). Хранение двоичных данных в байтовых переменных сохраняет данные во время преобразования формата. Когда строковая переменная преобразуется между форматами ANSI и Unicode, любые двоичные данные в переменной будут уничтожены. Visual Basic автоматически преобразует ANSI и Unicode в любой из следующих ситуаций:
При чтении файла
При записи файла
При вызове DLL
При вызове методов и свойств объекта
За исключением унарного вычитания, все операторы, которые могут работать с целыми числами, могут работать с типом данных Byte. Поскольку Byte — это беззнаковый тип от 0 до 255, он не может представлять отрицательные числа. Поэтому при выполнении унарного вычитания VisualBasic сначала преобразует байт в целое число со знаком.
Все числовые переменные могут быть присвоены друг другу и переменным типа Variant. Прежде чем присваивать число с плавающей запятой целому числу, Visual Basic округляет десятичную часть числа с плавающей запятой, а не удаляет ее.
Подробности Подробную информацию о преобразовании Unicode и ANSI см. в главе 16 «Интернационализация».
Строковый тип данных
Если переменная всегда содержит строку, а не числовое значение, вы можете объявить ее как тип String.
PrivateSAsString
Затем вы можете присвоить этой переменной строку и работать с ней с помощью строковых функций.
S=База данных
S=Влево(S,4)
По умолчанию строковая переменная или параметр представляет собой строку переменной длины. По мере того, как строке присваиваются новые данные, ее длина может увеличиваться или уменьшаться. Также возможно объявить строку фиксированной длины. Строку фиксированной длины можно объявить с помощью следующего синтаксиса:
Строка*размер
Например, чтобы объявить строку из 50 символов, используйте следующий оператор:
DimEmpNameAsString*50
Если строке назначено менее 50 символов, недостающая часть EmpName заполняется пробелами. Если длина, присвоенная строке, слишком велика и не может стать строкой фиксированной длины, Visual Basic напрямую обрежет лишние символы.
Поскольку строки фиксированной длины заполняются пробелами в конце дополнительного пространства, функции Trim и RTrim, удаляющие пробелы, могут оказаться очень полезными при работе со строками фиксированной длины. Строки фиксированной длины в стандартных модулях могут быть объявлены как Public или Private. В формах и модулях классов строки фиксированной длины должны быть объявлены как Private.
Дополнительные сведения см. в разделе «Ltrim, RTrim и функции обрезки» в «Справочном руководстве по языку Visual Basic 6.0».
Поменяйте местами строки и числа.
Если строка представляет числовое значение, ее можно присвоить числовой переменной. Строковым переменным также можно присваивать числовые значения. Например, разместите в форме командные кнопки, текстовые поля и списки. Введите следующий код в событие Click командной кнопки. Запустите приложение и нажмите командную кнопку.
PrivateSubCommand1_Click()
DimintXAsInteger
DimstrYAsString
стрY=100,23
intX=strY 'Передача строки в числовую переменную.
List1.AddItemCos(strY) 'Добавить значение косинуса значения в строке.
'Добавить в список.
strY=Cos(strY) 'Передача значения косинуса в строковую переменную.
Text1.Text=strY 'Отображение строки в текстовом поле.
EndSub
Visual Basic автоматически присваивает переменным соответствующий тип данных. Будьте осторожны при преобразовании строк и числовых значений; если значение в переданной строке не является числовым, во время выполнения произойдет ошибка.
Логический тип данных
Если значение переменной представляет собой только информацию «истина/ложь», «да/нет» и «вкл/выкл», ее можно объявить как логический тип. Значением Boolean по умолчанию является False. В приведенном ниже примере blnRunning — это логическая переменная, в которой хранится простая настройка «да» или «нет».
DimblnRunningAsBoolean
«Проверьте, крутится ли лента.
ЕслиRecorder.Direction=1Тогда
blnRunning=Истина
Эндиф
Тип данных даты
Значения даты и времени могут содержаться либо в конкретном типе данных Date, либо в переменных Variant. Общие свойства даты применяются к обоим типам.
Для получения дополнительной информации см. раздел «Хранение значений даты и времени в переменных переменных» раздела «Дополнительные темы о переменных» в онлайн-руководстве.
Когда другие числовые типы данных преобразуются в дату, значение слева от десятичной точки представляет информацию о дате, а значение справа от десятичной точки представляет время. Полночь — 0, полдень — 0,5. Отрицательные числа представляют даты до 31 декабря 1899 года нашей эры.
->