Оператор Const (Visual Basic)
Объявляет и определяет одну или несколько констант.
[ <attributelist> ] [ accessmodifier ] [ Shadows ]
Const constantlist
Части
attributelist
Необязательный.Список атрибутов, применяемых ко всем константам, объявленным в данном операторе.См. Список атрибутов (Visual Basic) в угловых скобках ("<" и ">").accessmodifier
Необязательный.Позволяет указать, какой код может получить доступ к этим константам.Может быть Public (Visual Basic), Protected (Visual Basic), Friend (Visual Basic), Protected Friend или Private (Visual Basic).Shadows
Необязательный.Используется для переобъявления и скрытия программного элемента в базовом классе.См. раздел Shadows.constantlist
Обязательный.Список констант, объявляемых в этом операторе.constant[ , constant ... ]
Каждая процедура constant имеет следующий синтаксис и составляющие:
constantname[ As datatype ] = initializer
Часть
Описание
constantname
Обязательный.Имя константы.Дополнительные сведения см. в разделе Имена объявленных типов (Visual Basic).
datatype
Требуется, если для Option Strict установлено значение On.Тип данных константы.
initializer
Обязательный.Выражение, вычисляемое во время компиляции и присваиваемое константе.
Заметки
Если в приложении имеется значение, которое никогда не изменяется, можно определить именованную константу и использовать ее вместо исходного значения.Имя проще запомнить, чем значение.Можно определить константу только один раз и использовать ее в коде.Если в более поздней версии требуется переопределить значение, оператор Const является единственным местом, где необходимо внести изменения.
Const можно использовать только на уровне модуля или процедуры.Это означает, что контекст объявления для переменной должен быть классом, структурой, модулем, процедурой или блоком и не может быть исходным файлом, пространством имен или интерфейсом.Дополнительные сведения см. в разделе Контексты объявления и уровни доступа по умолчанию (Visual Basic).
Локальные константы (внутри процедуры) по умолчанию имеют общий уровень доступа и в них нельзя использовать никакие модификаторы доступа.Константы-члены класса и модуля (вне любых процедур) по умолчанию имеют закрытый доступ, а константы-члены структуры по умолчанию имеют общий доступ.Уровни доступа можно настроить с помощью модификаторов доступа.
Правила
Контекст объявления. Константа, объявленная на уровне модуля, вне любой процедуры, представляет собой константу-член; она является членом класса, структуры или модуля, объявляющего его.
Константа, объявленная на процедурном уровне является локальной константой; она является локальной для процедуры или блока, объявляющего ее.
Атрибуты. Можно применить атрибуты только к константам-членам, но не к локальным константам.Атрибут вносит сведения для метаданных сборки, которая не имеет смысла для временного хранения таких констант, как локальные.
Модификаторы. По умолчанию, все константы являются Shared, Static и ReadOnly.При объявлении констант эти ключевые слова использовать нельзя.
На уровне процедур нельзя использовать Shadows и все модификаторы доступа для объявления локальных констант.
Множественные константы. В одном операторе объявления можно объявить несколько констант, указав компонент constantname для каждого из них.Несколько констант разделяются запятыми.
Правила типов данных
Типы данных. Оператор Const может объявлять тип данных переменной.Можно указать любой тип данных или имя перечисления.
Тип по умолчанию. Если не определен элемент datatype, переменная принимает тип данных элемента initializer.Если задан и datatype и initializer, тип данных initializer должен быть преобразован к datatype.Если отсутствует и datatype, и initializer, по умолчанию типом данных является Object.
Различные типы. Можно указать различные типы для разных констант с помощью отдельных предложений As для каждой объявляемой переменной.Однако с помощью общего предложения As нельзя объявить несколько констант одного и того же типа.
Инициализация. Необходимо инициализировать значение каждой константы в constantlist.initializer позволяет указать выражение, которое необходимо назначить константе.Выражение может быть любым сочетанием литералов, других констант и членов перечислений, которые уже определены.Для комбинирования этих элементов можно использовать арифметические и логические операторы.
Нельзя использовать переменные или функции в initializer.Однако можно использовать ключевые слова преобразования, такие как CByte и CShort.Также можно использовать функцию AscW для вызова с постоянными аргументами типа String или Char, поскольку ее значение может быть вычислено во время компиляции.
Поведение
Область действия. Локальные константы доступны только в пределах их процедуры или блока.Константы-члены доступны из любого места в пределах их класса, структуры или модуля.
Квалификация. Код вне класса, модуля или структуры должен предварять имя константы-члена именем этого класса, структуры или модуля.Код за пределами процедуры или блока не может ссылаться на любые локальные константы в пределах этой процедуры или блока.
Пример
В следующем примере оператор Const используется для объявления констант, заменяющих литералы.
' The following statements declare constants.
Const maximum As Long = 459
Public Const helpString As String = "HELP"
Private Const startValue As Integer = 5
При определении константы с типом данных Object компилятор Visual Basic предоставляет ей тип initializer вместо Object.В следующем примере константа naturalLogBase имеет тип времени выполнения Decimal.
Const naturalLogBase As Object = CDec(2.7182818284)
MsgBox("Run-time type of constant naturalLogBase is " &
naturalLogBase.GetType.ToString())
Вышеприведенный пример использует метод ToString в объекте Type, возвращенном оператором Оператор GetType (Visual Basic), поскольку Type не может быть преобразован к String с помощью CStr.
См. также
Ссылки
Функции преобразования типов (Visual Basic)
Основные понятия
Явные и неявные преобразования (Visual Basic)
Константы и перечисления (Visual Basic)