Instrução Module
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
attributelist
Opcional. Consulte Lista de atributos (Visual Basic).accessmodifier
Opcional. Pode ser um dos seguintes:Consulte Níveis de acesso no Visual Basic.
name
Obrigatório. Nome deste módulo. Consulte Nomes de elemento declarados (Visual Basic).statements
Opcional. As instruções que defina as variáveis, propriedades, eventos, procedimentos e tipos aninhados deste módulo.End Module
Finaliza a definição Module.
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 Contextos de declaração e níveis de acesso padrão (Visual Basic).
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 Friend (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 no 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 no 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 Instrução Inherits 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 Particular (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 tipos (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 a 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
Instrução Class (Visual Basic)
Instrução Interface (Visual Basic)