Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Declara el nombre de un módulo e introduce la definición de las variables, propiedades, eventos y procedimientos que comprende el módulo.
Sintaxis
[ <attributelist> ] [ accessmodifier ] Module name
[ statements ]
End Module
Partes
attributelist
Opcional. Consulte Lista de atributos.
accessmodifier
Opcional. Puede ser uno de los siguientes:
Consulte Niveles de acceso en Visual Basic.
name
Obligatorio. Nombre de este módulo. Vea Nombres de elementos declarados.
statements
Opcional. Instrucciones que definen las variables, propiedades, eventos, procedimientos y tipos anidados de este módulo.
End Module
Finaliza la Module definición.
Observaciones
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 asignarse 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 tener el tipo de datos de un módulo.
Solo puede usar Module en el nivel de espacio de nombres. Esto significa que el contexto de declaración de un módulo debe ser un archivo de origen o un espacio de nombres, 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 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 todos Shared, también tienen duraciones iguales a la del programa.
Los módulos tienen acceso predeterminado a Friend . Puede ajustar sus niveles de acceso 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 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
Sharedpalabra clave al declarar un miembro y no puede modificar el estado compartido de ningún miembro.Herencia. Un módulo no puede heredar de ningún tipo distinto Objectde , desde el que todos los módulos heredan. En concreto, un módulo no puede heredar de otro.
No se puede usar la instrucción Inherits en una definición de módulo, incluso para especificar Object.
Propiedad predeterminada. No se pueden definir propiedades predeterminadas en un módulo. Para obtener más información, consulte Valor predeterminado.
Comportamiento
Nivel de entrada. 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 el acceso privado . Cuando un módulo tiene acceso más restringido que uno de sus miembros, el nivel de acceso del módulo especificado tiene prioridad.
Ámbito. Un módulo está en el ámbito a lo largo de 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 promueva 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 dicho miembro con el nombre de módulo adecuado si la referencia está fuera de ese módulo. Para obtener más información, vea Referencias a elementos declarados.
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