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

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

Синтаксис

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

Детали

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

accessmodifier
Необязательно. Используйте это, чтобы указать, какой код может получить доступ к этим константам. Может быть общедоступным, защищенным, другом, защищенным другом, частным или частным защищенным.

Shadows
Необязательно. Используйте это для повторного объявления и скрытия элемента программирования в базовом классе. См . тени.

constantlist
Обязательный. Список констант, объявленных в этом операторе.

constant [ , constant ... ]

Каждый элемент constant имеет перечисленные ниже синтаксис и компоненты.

constantname [ As datatype ] = initializer

Часть Description
constantname Обязательное. Имя константы. См. раздел Declared Element Names.
datatype Обязательный параметр, если Option Strict имеет значение On. Тип данных константы.
initializer Обязательный. Выражение, вычисляемое во время компиляции и назначенное константе.

Замечания

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

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

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

Правила

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

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

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

  • Модификаторы. По умолчанию все константы : Sharedи StaticReadOnly. При объявлении константы нельзя использовать любой из этих ключевое слово.

    На уровне процедуры нельзя использовать Shadows или какие-либо модификаторы доступа для объявления локальных констант.

  • Несколько констант. Можно объявить несколько констант в одной инструкции объявления, указав constantname часть для каждой из них. Несколько констант разделены запятыми.

Правила типа данных

  • Типы данных. Инструкция Const может объявить тип данных переменной. Можно указать любой тип данных или имя перечисления.

  • Тип по умолчанию. Если не указано datatype, константа принимает тип initializerданных. Если указано и то datatype , и initializerдругое initializer , тип данных должен быть преобразован в datatype. Если ни нет datatypeinitializer , тип данных по умолчанию не указан Object.

  • Различные типы. Можно указать различные типы данных для разных констант, используя отдельное As предложение для каждой объявленной переменной. Однако нельзя объявить несколько констант одного типа с помощью общего As предложения.

  • Инициализация. Необходимо инициализировать значение каждой константы в constantlist. Вы используете initializer для предоставления выражения, назначаемого константе. Выражение может быть любым сочетанием литералом, другими константами, которые уже определены, и элементами перечисления, которые уже определены. Для объединения таких элементов можно использовать арифметические и логические операторы.

    Нельзя использовать переменные или функции в initializer. Однако можно использовать такие ключевое слово преобразования, как CByte и CShort. Можно также использовать AscW при вызове его с константой String или Char аргументом, так как это можно оценить во время компиляции.

Поведение

  • Область. Локальные константы доступны только из процедуры или блока. Константы членов доступны в любом месте в пределах класса, структуры или модуля.

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

Пример 1

В следующем примере оператор используется Const для объявления констант для использования вместо литеральных значений.

' The following statements declare constants.
Const maximum As Long = 459
Public Const helpString As String = "HELP"
Private Const startValue As Integer = 5

Пример 2

Если определить константу с типом 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.

См. также