Поделиться через


Оператор Const (Visual Basic)

Обновлен: Ноябрь 2007

Объявляет и определяет одну или несколько констант.

[ <attributelist> ] [ accessmodifier ] [ Shadows ] 
Const constantlist

Компоненты

  • attributelist
    Необязательный. Список атрибутов, применяемых ко всем константам, объявленным в данном операторе. См. Список атрибутов в угловых скобках ("<" и ">").

  • 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

    Обязательный. Имя константы. См. раздел Имена объявленных элементов.

    datatype

    Обязателен, если Option Strict установлен в On. Тип данных константы.

    initializer

    Обязательный. Выражение, вычисляемое во время компиляции и присваиваемое константе.

Заметки

Если в приложении имеется значение, которое никогда не изменяется, можно определить именованную константу и использовать ее вместо исходного значения. Имя проще запомнить, чем значение. Можно определить константу только один раз и использовать ее в коде. Если в более поздней версии требуется переопределить значение, оператор Const является единственным местом, где необходимо внести изменения.

Const можно использовать только на уровне модуля или процедуры. Это означает, что контекст объявления для переменной должен быть классом, структурой, модулем, процедурой или блоком и не может быть исходным файлом, пространством имен или интерфейсом. Дополнительные сведения см. в разделе Контексты объявления и уровни доступа по умолчанию.

Локальные константы (внутри процедуры) по умолчанию имеют общий уровень доступа и в них нельзя использовать никакие модификаторы доступа. Константы-члены класса и модуля (вне любых процедур) по умолчанию имеют закрытый доступ, а константы-члены структуры по умолчанию имеют общий доступ. Их уровни доступа можно настроить с помощью модификаторов доступа.

Правила

  • Контекст объявления. Константа, объявленная на уровне модуля, вне любой процедуры, представляет собой константу-член; она является членом класса, структуры или модуля, объявляющего его.

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

  • Атрибуты. Можно применить атрибуты только к константам-членам, но не к локальным константам. Атрибут вносит сведения для метаданных сборки, которая не имеет смысла для временного хранения таких констант, как локальные.

  • Модификаторы. По умолчанию, все константы являются 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, поскольку Type не может быть преобразован к String с помощью CStr.

См. также

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

Явные и неявные преобразования

Встроенные константы и перечисления

Ссылки

Оператор Enum (Visual Basic)

Директива #Const

Оператор Dim (Visual Basic)

Оператор ReDim (Visual Basic)

Функции преобразования типов

Функции Asc, AscW

Другие ресурсы

Константы и перечисления в Visual Basic