Compartilhar via


Declaração de Módulo

Declares the name of a module and introduces the definition of the variables, properties, events, and procedures that the module comprises.

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

Parts

Comentários

A Module statement defines a reference type available throughout its namespace. A module (sometimes called a standard module)is similar to a class but with some important distinctions. Every module has exactly one instance and does not need to be created or assigned to a variable. Modules do not support inheritance or implement interfaces. Notice that a module is not a type in the sense that a class or structure is — you cannot declare a programming element to have the data type of a module.

You can use Module only at namespace level. This means the declaration context for a module must be a source file or namespace, and cannot be a class, structure, module, interface, procedure, or block. You cannot nest a module within another module, or within any type. For more information, see Contextos de declaração e níveis de acesso padrão (Visual Basic).

A module has the same lifetime as your program. Because its members are all Shared, they also have lifetimes equal to that of the program.

Modules default to Friend (Visual Basic) access. You can adjust their access levels with the access modifiers. For more information, see Níveis de acesso em Visual Basic.

All members of a module are implicitly Shared.

Classes and Modules

These elements have many similarities, but there are some important differences as well.

  • Terminologia. VersõesAnterior de Visual Basic reconhecem dois tipos de módulos: os módulos declasse (arquivos do CLS) e módulos padrão (arquivos. BAS). The current version calls these classes and modules, respectively.

  • Membros compartilhados. You can control whether a member of a class is a shared or instance member.

  • Object Orientation. Classes are object-oriented, but modules are not. So only classes can be instantiated as objects. For more information, see Objetos e Classes no Visual Basic.

Rules

  • Modificadores. Tudoos membros domódulo são implicitamente Compartilhamento (Visual Basic). You cannot use the Shared keyword when declaring a member, and you cannot alter the shared status of any member.

  • Herança. Um módulo não pode herdar de qualquer tipo diferente de Object, a partir do quais todos os módulos herdam. In particular, one module cannot inherit from another.

    You cannot use the Declaração Inherits in a module definition, even to specify Object.

  • Padrão Propriedade. Você não pode definir as propriedades padrão em um módulo. For more information, see Padrão (Visual Basic).

Behavior

  • Nível de acesso. Within a module, you can declare each member with its own access level. Module members default to Público (Visual Basic) access, except variables and constants, which default to Private (Visual Basic) access. When a module has more restricted access than one of its members, the specified module access level takes precedence.

  • Escopo. A module is in scope throughout its namespace.

    The scope of every module member is the entire module. Notice that all members undergo type promotion, which causes their scope to be promoted to the namespace containing the module. For more information, see Promoção de tipos (Visual Basic).

  • Qualification. You can have multiple modules in a project, and you can declare members with the same name in two or more modules. However, you must qualify any reference to such a member with the appropriate module name if the reference is from outside that module. For more information, see 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

Declaração Class (Visual Basic)

Instrução Namespace

Instrução Structure

Declaração Interface (Visual Basic)

Propriedade declaração

Conceitos

Promoção de tipos (Visual Basic)