Оператор 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
иStatic
ReadOnly
. При объявлении константы нельзя использовать любое из этих ключевых слов.На уровне процедуры нельзя использовать
Shadows
или какие-либо модификаторы доступа для объявления локальных констант.Несколько констант. Можно объявить несколько констант в одной инструкции объявления, указав
constantname
часть для каждой из них. Несколько констант разделены запятыми.
Правила типа данных
Типы данных. Инструкция
Const
может объявить тип данных переменной. Можно указать любой тип данных или имя перечисления.Тип по умолчанию. Если не указано
datatype
, константа принимает типinitializer
данных. Если указано и тоdatatype
, иinitializer
другоеinitializer
, тип данных должен быть преобразован вdatatype
. Если ни нетdatatype
initializer
, тип данных по умолчанию не указан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
.