Declaraçã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. Consulte Lista de atributos entre colchetes angulares ("<" e ">").

accessmodifier
Opcional. Use isso para especificar qual código pode acessar essas constantes. Pode ser Público, Protegido, Amigo, Amigo Protegido, Privado ou Privado Protegido.

Shadows
Opcional. Use isso para redeclarar e ocultar um elemento de programação em uma classe base. Veja Sombras.

constantlist
Obrigatório. Lista de constantes que estão sendo declaradas nesta instrução.

constant [ , constant ... ]

Cada constant um tem a seguinte sintaxe e partes:

constantname [ As datatype ] = initializer

Parte Description
constantname Obrigatório. Nome da constante. Consulte Nomes de elementos declarados.
datatype Obrigatório se Option Strict for On. Tipo de dados da constante.
initializer Obrigatório. Expressão que é avaliada em tempo de compilação e atribuída à constante.

Observações

Se você tiver um valor que nunca muda 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 Const instrução é o único lugar que você precisa fazer uma alteração.

Você pode usar Const apenas no nível do módulo ou procedimento. Isso significa que o contexto da declaração para uma variável deve ser uma classe, estrutura, módulo, procedimento ou bloco e não pode ser um arquivo de origem, namespace ou interface. Para obter mais informações, consulte Contextos de declaração e níveis de acesso padrão.

As constantes locais (dentro de um procedimento) são padrão para 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) padrão para acesso privado e constantes de membro da estrutura padrão para acesso público. Você pode ajustar seus níveis de acesso com os modificadores de acesso.

Regras

  • Contexto da Declaração. Uma constante declarada no nível do módulo, fora de qualquer procedimento, é uma constante de membro, é um membro da classe, estrutura ou 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 armazenamento temporário, como constantes locais.

  • Modificadores. Por padrão, todas as constantes são Shared, Statice ReadOnly. Não é possível usar nenhuma dessas palavras-chave ao declarar uma constante.

    No nível do procedimento, você não pode usar Shadows ou quaisquer modificadores de acesso para declarar constantes locais.

  • Várias constantes. Você pode declarar várias constantes na mesma instrução de declaração, especificando a constantname parte para cada uma. Várias constantes são separadas por vírgulas.

Regras de tipo de dados

  • Tipos de dados. A Const instrução 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 de initializer. Se você especificar ambos datatype e initializer, o tipo de dados de initializer deverá ser conversível em datatype. Se nem datatype estiver initializer presente, o tipo de dados assume Objectcomo padrão .

  • Diferentes tipos. Você pode especificar diferentes tipos de dados para constantes diferentes usando uma cláusula separada As para cada variável declarada. No entanto, você não pode declarar várias constantes como sendo do mesmo tipo usando uma cláusula comum As .

  • Inicialização. Você deve inicializar o valor de cada constante em constantlist. Você usa initializer 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.

    Não é possível usar variáveis ou funções no initializer. No entanto, você pode usar palavras-chave de conversão, como CByte e CShort. Você também pode usar AscW se você chamá-lo com uma constante String ou Char argumento, uma vez que isso pode ser avaliado em tempo de compilação.

Comportamento

  • Âmbito. As constantes locais são acessíveis apenas a partir do seu procedimento ou bloco. As constantes de membro são acessíveis de qualquer lugar dentro de sua classe, estrutura ou 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 referir-se a quaisquer constantes locais dentro desse procedimento ou bloco.

Exemplo 1

O exemplo a seguir usa a Const instrução 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 lhe dará o tipo de , em vez de initializerObject. No exemplo a seguir, a constante naturalLogBase tem o tipo Decimalde tempo de execução .

Const naturalLogBase As Object = CDec(2.7182818284)
MsgBox("Run-time type of constant naturalLogBase is " &
    naturalLogBase.GetType.ToString())

O exemplo anterior usa o ToString método no Type objeto retornado pelo operador GetType, porque Type não pode ser convertido para String usar CStr.

Consulte também