Compartilhar via


Declaração Enum (Visual Basic)

Declara uma enumeração e define os valores de seus membros.

[ <attribute list> ] [ access modifier ]  [ Shadows ] 
Enum enumeration name [ As data type ] 
      member list
End Enum

Partes

  • attribute list
    Opcional.Lista de atributos que se aplicam a essa enumeração.Você deve colocar a Lista de Atributos entre colchetes angulares ("<"e ">").

  • access modifier
    Opcional.Especifica o código que pode acessar essa enumeração.Pode ser um dos seguintes:

    Você pode especificar ProtectedFriend para permitir o acesso a partir de código dentro de enumeração da classe, uma classe derivada ou do mesmo conjunto.

  • Shadows
    Opcional.Especifica que enumeração redeclara e oculta um elemento de programação de nome idêntico, ou conjunto de elementos sobrecarregados, na classe base.Você pode especificar Shadows somente na enumeração em si, não em qualquer um dos seus membros.

  • enumeration name
    Obrigatório.Nome da enumeração.Para obter informações sobre nomes válidos, consulte Nomes de Elementos Declarados.

  • data type
    Necessário se OptionStrict está On.Tipo de dados de enumeração e todos os seus membros.

  • member list
    Obrigatório.Lista de constantes de membro sendo declarada nessa instrução.Vários membros aparecem em linhas individuais de código-fonte.

    Cada member possui a seguinte sintaxe e partes: [<attribute list>] member name [ = initializer ]

    Parte

    Descrição

    member name

    Obrigatório.Nome desse membro.

    initializer

    Opcional.Expressão que é avaliada em tempo de compilação e atribuída a este membro.

  • EndEnum
    Encerra o bloco Enum.

Comentários

Se você tiver um conjunto de valores sem variação que são logicamente relacionados uns aos outros, você pode defini-los juntos em uma enumeração.Isso fornece nomes significativos para a enumeração e seus membros, que são mais fáceis de lembrar que seus valores.Em seguida, você pode usar os membros de enumeração em muitos locais no seu código.Isso também melhora a legibilidade do código porque todos os valores relacionados usam o mesmo nome de enumeração.

Você pode usar Enum somente em nível de namespace ou módulo.Isso significa que o contexto da declaração para uma enumeração deve ser um arquivo fonte, namespace, classe, estrutura, módulo, ou interface, e não pode ser um procedimento.Para obter mais informações, consulte Declaração de contextos e níveis de acesso padrão.

A instrução Enum pode declarar o tipo de dados de uma enumeração.Cada membro leva a enumeração do tipo de dados.Você pode especificar Byte, Integer, Long, SByte, Short, UInteger, ULong, ou UShort.

Se você não especificar initializer para um membro, Visual Basic o inicializa com zero (se ele for o primeiro member no member list), ou para um valor maior que o do member imediatamente anterior.

Enumerações de membros de classe, estrutura, módulo e interface têm acesso público como padrão.Você pode ajustar os níveis de acesso com os modificadores de acesso.Enumerações para membro de namespace tem como padrão acesso friend.Você pode ajustar os níveis de acesso para público, mas não para private ou protected.Para obter mais informações, consulte: Níveis de acesso em Visual Basic.Regras

  • Contexto da Declaração. Uma enumeração declarada no nível de módulo, fora de qualquer procedimento, é um membro de enumeração; ele é um membro da classe, estrutura, módulo ou interface que o declara.

    Uma enumeração declarada no nível de namespace, fora de qualquer classe, estrutura, módulo ou interface, é um membro apenas do namespace no qual ele aparece.

  • Atributos. Você pode aplicar atributos a uma enumeração como um todo, mas não a seus membros individualmente.Um atributo contribui com as informações de metadados do conjunto.

  • Modificadores Por padrão, todas as enumerações são tipos e seus campos são constantes.Portanto, as palavras-chave Shared, Static, e ReadOnly não podem ser usadas quando se declara uma enumeração ou seus membros.

Regras de Tipo de Dados

  • Tipo Padrão. Se você não especificar data type para a enumeração, cada membro terá o tipo de dados do seu initializer.Se você especificar data type e initializer, o tipo de dados do initializer deve ser conversível para data type.Se nem data type ou initializer estiverem presentes, o tipo de dados padrão será Integer.

  • Inicialização. A instrução Enum pode inicializar o conteúdo de membros selecionados na member list.Você usa initializer para fornecer uma expressão a ser atribuída ao membro.

    A expressão fornecida em cada initializer pode ser qualquer combinação de literais, outras constantes que já estão definidas, e membros de enumeração que já estão definidos, incluindo um membro anterior dessa enumeração.Você pode usar operadores aritméticos e lógicos para combinar esses elementos.

    Você não pode 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 argumento Char, desde que possa ser avaliado em tempo de compilação.

Comportamento

  • Nível de Acesso Todos os membros de enumeração têm acesso público, e você não pode usar quaisquer modificadores de acesso neles.Entretanto, se a enumeração tiver um nível de acesso mais restrito, o nível de acesso especificado enumeração tem precedência

  • Escopo. Membros de enumeração são acessíveis a partir de qualquer lugar dentro da sua classe, estrutura, módulo ou interface.Enumerações de membro de namespace são acessíveis a partir de qualquer código dentro desse namespace.

  • Qualificação Código fora de uma classe, estrutura, ou módulo deve qualificar um nome de enumeração de membro com o nome dessa classe, estrutura ou módulo.

  • Valores Inválidos. Se o valor de um membro exceder o intervalo permitido para o tipo de dados sobrejacente, ou se você inicializar qualquer membro com o máximo valor permitido pelo tipo de dados sobrejacente, o compilador reportará um erro.

E numeração variáveis são variáveis declaradas para serem do tipo Enum.Declarar uma variável dessa maneira ajuda você a controlar os valores que atribui a ela.No entanto, você ainda pode atribuir um valor que não seja um membro de enumeração, desde que seu tipo de dados possa ser convertido em tipo de dados da enumeração.Isso é útil quando a enumeração é um campo de sinalizador e você atribui uma combinação de sinalizadores para a variável de enumeração.O exemplo a seguir mostra uma atribuição de vários sinalizadores para uma variável de enumeração.

Enum filePermissions
    create = 1
    read = 2
    write = 4
    delete = 8
End Enum
Dim file1Perm As filePermissions
file1Perm = filePermissions.create Or filePermissions.read

Você deve qualificar cada referência a um membro de enumeração, com o nome de uma variável de enumeração ou com o nome da enumeração propriamente dita.Por exemplo, no exemplo anterior, você pode referir-se ao primeiro membro como filePermissions.create, mas não como create.

Exemplo

O exemplo a seguir utiliza a instrução Enum para definir um conjunto relacionado de valores constantes nomeados.Nesse caso, os valores são cores que você pode escolher para criar formulários para um banco de dados de entrada de dados.

Public Enum InterfaceColors
    MistyRose = &HE1E4FF&
    SlateGray = &H908070&
    DodgerBlue = &HFF901E&
    DeepSkyBlue = &HFFBF00&
    SpringGreen = &H7FFF00&
    ForestGreen = &H228B22&
    Goldenrod = &H20A5DA&
    Firebrick = &H2222B2&
End Enum

O exemplo a seguir mostra os valores que incluem números tanto positivos quanto negativos.

Enum SecurityLevel
    IllegalEntry = -1
    MinimumSecurity = 0
    MaximumSecurity = 1
End Enum

Consulte também

Conceitos

Conversões explícita e implícita 

Constantes Intrínsecas e Enumerações

Referência

Declaração Const (Visual Basic)

Instrução Dim (Visual Basic)

Funções de conversão de tipo 

Funções Asc, AscW

Outros recursos

Constantes e Enumerations no Visual Basic