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


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

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

Синтаксис

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

Комплектующие

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

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

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

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

constant [ , constant ... ]

Каждый constant из них имеет следующий синтаксис и части:

constantname [ As datatype ] = initializer

Часть Описание
constantname Обязательное. Имя константы. См. объявленные имена элементов.
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.

См. также