Instrução Const (Visual Basic)
Declara e define uma ou mais constantes.
Sintaxe
[ <attributelist> ] [ accessmodifier ] [ Shadows ]
Const constantlist
Partes
attributelist
Opcional. Lista de atributos que se aplicam a todas as constantes declaradas nesta instrução. Confira Lista de atributos em colchetes angulares ("<
" e ">
").
accessmodifier
Opcional. Use isso para especificar qual código pode acessar essas constantes. Pode ser Público, Protegido, Amigo, Amigo protegido, Particular ou Protegido de forma particular.
Shadows
Opcional. Use isso para declarar novamente e ocultar um elemento de programação em uma classe base. Confira Sombras.
constantlist
Obrigatórios. Lista de constantes que estão sendo declaradas nesta instrução.
constant
[ ,
constant
... ]
Cada constant
tem a seguinte sintaxe e partes:
constantname
[ As
datatype
] =
initializer
Parte | Descrição |
---|---|
constantname |
Obrigatórios. Nome da constante. Confira Nomes de elemento declarados. |
datatype |
Necessário se Option Strict for On . O tipo de dados da constante. |
initializer |
Obrigatórios. Expressão avaliada em tempo de compilação e atribuída à constante. |
Comentários
Se você tiver um valor que nunca é alterado em seu aplicativo, poderá definir uma constante nomeada e usá-la no lugar de um valor literal. Um nome é mais fácil de lembrar do que um valor. Você pode definir a constante apenas uma vez e usá-la em muitos lugares em seu código. Se em uma versão posterior você precisar redefinir o valor, a instrução Const
será o único local em que você precisa fazer uma alteração.
Você só pode usar Const
no nível do módulo ou procedimento. Isso significa que o contexto de declaração de uma variável precisa ser uma classe, uma estrutura, um módulo, um procedimento ou um bloco e não pode ser um arquivo de origem, um namespace ou uma interface. Para obter mais informações, consulte Contextos de declaração e níveis de acesso padrão.
Constantes locais (dentro de um procedimento) assumem o padrão de acesso público, e você não pode usar nenhum modificador de acesso nelas. Constantes de membro de classe e módulo (fora de qualquer procedimento) assume o padrão de acesso particular e constantes de membro de estrutura assumem o padrão e acesso público. Você pode ajustar os níveis de acesso com os modificadores de acesso.
Regras
Contextos da declaração. Uma constante declarada no nível do módulo, fora de qualquer procedimento, é uma constante de membro; é um membro da classe, da estrutura ou do módulo que a declara.
Uma constante declarada no nível do procedimento é uma constante local; é local para o procedimento ou bloco que a declara.
Atributos. Você pode aplicar atributos somente a constantes de membro, não a constantes locais. Um atributo contribui com informações para os metadados do assembly, o que não é significativo para o armazenamento temporário, como constantes locais.
Modificadores. Por padrão, todas as constantes são
Shared
,Static
eReadOnly
. Você não pode usar nenhuma dessas palavras-chave ao declarar uma constante.No nível do procedimento, você não pode usar
Shadows
nem modificadores de acesso para declarar constantes locais.Várias constantes. Você pode declarar diversas constantes na mesma instrução de declaração, especificando a parte
constantname
para cada uma delas. Várias constantes são separadas por vírgulas.
Regras de tipo de dados
Tipos de dados. A instrução
Const
pode declarar o tipo de dados de uma variável. Você pode especificar qualquer tipo de dados ou o nome de uma enumeração.Tipo padrão. Se você não especificar
datatype
, a constante usará o tipo de dados deinitializer
. Se você especificardatatype
einitializer
, o tipo de dados deinitializer
deverá ser conversível paradatatype
. Se nemdatatype
neminitializer
estiver presente, o tipo de dados será padrão paraObject
.Tipos diferentes. Você pode especificar tipos de dados diferentes para constantes diferentes usando uma cláusula
As
separada para cada variável que você declarar. No entanto, você não pode declarar diversas constantes como sendo do mesmo tipo usando uma cláusulaAs
comum.Inicialização. Você deve inicializar o valor de cada constante em
constantlist
. Você usainitializer
para fornecer uma expressão a ser atribuída à constante. A expressão pode ser qualquer combinação de literais, outras constantes que já estão definidas e membros de enumeração que já estão definidos. Você pode usar operadores aritméticos e lógicos para combinar esses elementos.Você não pode usar variáveis ou funções em
initializer
. No entanto, você pode usar palavras-chave de conversão, comoCByte
eCShort
. Você também pode usarAscW
se chamá-lo com uma constanteString
ou um argumentoChar
, já que isso pode ser avaliado em tempo de compilação.
Comportamento
Escopo. As constantes locais são acessíveis somente de dentro do procedimento ou bloco. As constantes de membro são acessíveis de qualquer lugar dentro da classe, da estrutura ou do módulo.
Qualificação. O código fora de uma classe, estrutura ou módulo deve qualificar o nome de uma constante de membro com o nome dessa classe, estrutura ou módulo. O código fora de um procedimento ou bloco não pode se referir a nenhuma constante local dentro desse procedimento ou bloco.
Exemplo 1
O exemplo a seguir usa a instrução Const
para declarar constantes para uso no lugar de valores literais.
' The following statements declare constants.
Const maximum As Long = 459
Public Const helpString As String = "HELP"
Private Const startValue As Integer = 5
Exemplo 2
Se você definir uma constante com o tipo de dados Object
, o compilador do Visual Basic fornecerá o tipo de initializer
, em vez de Object
. No exemplo a seguir, a constante naturalLogBase
tem o tipo de tempo de execução Decimal
.
Const naturalLogBase As Object = CDec(2.7182818284)
MsgBox("Run-time type of constant naturalLogBase is " &
naturalLogBase.GetType.ToString())
O exemplo anterior usa o método ToString no objeto Type retornado pelo Operador GetType, porque Type não pode ser convertido em String
usando CStr
.