Module (Instrucción)

Declara el nombre de un módulo e introduce la definición de las variables, propiedades, eventos y procedimientos que contiene el módulo.

Sintaxis

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

Partes

attributelist
Opcional. Vea Lista de atributos.

accessmodifier
Opcional. Puede ser uno de los siguientes:

Consulte Niveles de acceso en Visual Basic.

name
Necesario. Nombre de este módulo. Vea Declared Element Names.

statements
Opcional. Instrucciones que definen las variables, propiedades, eventos, procedimientos y tipos anidados de este módulo.

End Module
Termina la definición de Module.

Comentarios

Una Module instrucción define un tipo de referencia disponible en todo su espacio de nombres. Un módulo (a veces denominado módulo estándar) es similar a una clase pero con algunas diferencias importantes. Cada módulo tiene exactamente una instancia y no es necesario crear ni asignar a una variable. Los módulos no admiten la herencia ni implementan interfaces. Observe que un módulo no es un tipo en el sentido de que una clase o estructura es : no se puede declarar un elemento de programación para que tenga el tipo de datos de un módulo.

Solo puede usar en Module el nivel de espacio de nombres. Esto significa que el contexto de declaración de un módulo debe ser un archivo o espacio de nombres de origen y no puede ser una clase, estructura, módulo, interfaz, procedimiento o bloque. No se puede anidar un módulo dentro de otro módulo ni dentro de ningún tipo. Para obtener más información, vea Declaration Contexts and Default Access Levels (Contextos de declaración y niveles de acceso predeterminados).

Un módulo tiene la misma duración que el programa. Dado que sus miembros son Shared todos , también tienen duraciones iguales a las del programa.

El valor predeterminado de los módulos es Acceso de confianza. Los niveles de acceso se pueden ajustar con los modificadores de acceso. Para obtener más información, vea Niveles de acceso en Visual Basic.

Todos los miembros de un módulo son implícitamente Shared .

Clases y módulos

Estos elementos tienen muchas similitudes, pero también hay algunas diferencias importantes.

  • Terminología. Las versiones anteriores de Visual Basic reconocen dos tipos de módulos: módulos de clase (archivos .cls) y módulos estándar (archivos .bas). La versión actual llama a estas clases y módulos, respectivamente.

  • Miembros compartidos. Puede controlar si un miembro de una clase es un miembro compartido o de instancia.

  • Orientación del objeto. Las clases están orientadas a objetos, pero los módulos no. Por lo tanto, solo se pueden crear instancias de las clases como objetos . Para obtener más información, vea Objetos y clases.

Reglas

  • Modificadores. Todos los miembros del módulo son compartidos implícitamente. No puede usar la palabra clave al declarar un miembro y no Shared puede modificar el estado compartido de ningún miembro.

  • Herencia. Un módulo no puede heredar de ningún tipo distinto de Object , del que heredan todos los módulos. En concreto, un módulo no puede heredar de otro.

    No puede usar la instrucción Inherits en una definición de módulo, ni siquiera para especificar Object .

  • Propiedad predeterminada. No puede definir ninguna propiedad predeterminada en un módulo. Para obtener más información, vea Default.

Comportamiento

  • Nivel de acceso. Dentro de un módulo, puede declarar cada miembro con su propio nivel de acceso. Los miembros del módulo tienen como valor predeterminado acceso público, excepto variables y constantes, que tienen como valor predeterminado acceso privado. Cuando un módulo tiene más acceso restringido que uno de sus miembros, el nivel de acceso del módulo especificado tiene prioridad.

  • Ámbito. Un módulo está en el ámbito en todo su espacio de nombres.

    El ámbito de cada miembro del módulo es todo el módulo. Observe que todos los miembros se someten a la promoción de tipos , lo que hace que su ámbito se promocione al espacio de nombres que contiene el módulo. Para obtener más información, vea Promoción de tipos.

  • Calificación. Puede tener varios módulos en un proyecto y puede declarar miembros con el mismo nombre en dos o más módulos. Sin embargo, debe calificar cualquier referencia a este miembro con el nombre de módulo adecuado si la referencia es de fuera de ese módulo. Para obtener más información, consulta References to Declared Elements.

Ejemplo

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 también