Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Объявляет и определяет одну или несколько констант.
Синтаксис
[ <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.