Compartilhar via


Declaração do 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 Níveis de acesso padrão (Visual Basic) e os contextos de declaraçã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 seus 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 (arquivos. CLS) e módulos padrão (arquivos. bas).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 Objetos e Classes em Visual Basic.

Regras

  • Modificador. Todos os membros de módulo são implicitamente Compartilhado (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. Um módulo não pode herdar de qualquer tipo diferente de Object, do quais todos os módulos herdam.Em particular, um módulo não pode herdar de outro.

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

  • Propriedade padrão. Você não pode definir as propriedades padrão em um módulo.Para obter mais informações, consulte Padrão (Visual Basic).

Comportamento

  • Nível de acesso. Dentro 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 (Visual Basic).

  • 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 Referências aos elementos declarados (Visual Basic).

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

Referência

Declaração de classe (Visual Basic)

Declaração de namespace

Declaração Structure

Instrução (Visual Basic) de interface.

Instrução Property

Conceitos

Promoção de tipo (Visual Basic)