Declaração de Módulo

Declara o nome de um módulo e introduz a definição de variáveis, propriedades, eventos e procedimentos que compõem o módulo.

[ <attributelist> ] [ accessmodifier ]  Module name
    [ statements ]
End Module

Partes

Comentários

Uma instrução Module define um tipo de referência disponível em todo o namespace.Um módulo (às vezes chamado de módulo padrão ) é semelhante a uma classe, mas com algumas distinções importantes.Cada módulo tem exatamente uma instância e não precisa ser criada ou atribuída a uma variável.Módulos não oferecem suporte à heranças ou implementam interfaces.Observe que um módulo é não um tipo no sentido de que uma classe ou estrutura é — você não pode declarar um elemento de programação para ter o tipo de dados de um módulo.

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

Um módulo tem o mesmo tempo de vida que seu programa.Como seus membros são todos Shared, eles também têm vida útil igual a do programa.

Os módulos têm como padrão acesso Amigo (Visual Basic).Você pode ajustar os níveis de acesso com os modificadores de acesso.Para obter mais informações, consulte Níveis de acesso em Visual Basic.

Todos os membros de um módulo são implicitamente Shared.

Classes e Módulos

Esses elementos têm várias semelhanças, mas há algumas diferenças importantes também.

  • Terminologia Versões anteriores do Visual Basic reconhecem dois tipos de módulos: módulos de classe (CLS arquivos) e módulos padrão (.bas arquivos).A versão atual os chama de classes e módulos , respectivamente.

  • Membros Compartilhados Você pode controlar se um membro de uma classe é um membro compartilhado ou de instância.

  • Orientação a Objeto Classes são orientadas a objeto, mas módulos não são.Portanto, apenas classes podem ser instanciadas como objetos.Para obter mais informações, consulte Classes versus módulos.

Regras

  • Modificadores Todos os membros do módulo são implicitamente Compartilhamento (Visual Basic).Você não pode usar a palavra-chave Shared quando declarar um membro, e você não pode alterar o status compartilhado de nenhum membro.

  • Herança Uma módulo não pode herdar de qualquer tipo que não seja Object, do qual todas os módulos herdam.Em particular, um módulo não pode herdar de outro.

    Você não pode usar Declaração Inherits em uma definição de módulo, mesmo que seja para especificar Object.

  • Propriedade Padrão Não é possível definir qualquer Propriedades Padrão em um módulo.

Comportamento

  • Nível de AcessoDentro de um módulo, você pode declarar cada membro com seu próprio nível de acesso.Módulo membros tem acesso Público (Visual Basic) como padrão, exceto as variáveis e constantes, que têm acesso Private (Visual Basic) como padrão.Quando um módulo tem mais acesso restrito que um de seus membros, o nível de acesso especificado do módulo tem precedência.

  • Escopo. Um módulo está no escopo em todo seu namespace.

    O escopo de cada membro de módulo é todo o módulo.Observe que todos os membros sofrem promoção de tipos,que faz com que o escopo seja promovido para o namespace que contém o módulo.Para obter mais informações, consulte Promoção de Tipo.

  • Qualificação Você pode ter vários módulos em um projeto, e você pode declarar membros com o mesmo nome em dois ou mais módulos.No entanto, você deverá qualificar qualquer referência a esse membro com o nome do módulo apropriado se a referência estiver fora desse módulo.Para obter mais informações, consulte Resolvendo uma Referência Quando Várias Variáveis Têm o Mesmo Nome.

Exemplo

Public Module thisModule
    Sub Main()
        Dim userName As String = InputBox("What is your name?")
        MsgBox("User name is" & userName)
    End Sub
    ' Insert variable, property, procedure, and event declarations.
End Module

Consulte também

Conceitos

Promoção de Tipo

Referência

Declaração Class (Visual Basic)

Declaração de namespace

Instrução Structure

Declaração Interface (Visual Basic)

Propriedade declaração