Module (Instrucción)
Actualización: noviembre 2007
Declara el nombre de un módulo e introduce la definición de las variables, propiedades, eventos y procedimientos que incluye el módulo.
[ <attributelist> ] [ accessmodifier ] Module name
[ statements ]
End Module
Partes
attributelist
Opcional. Vea Lista de atributos.accessmodifier
Opcional. Puede ser una de las siguientes: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
Termina la definición Module.
Comentarios
Una instrucción Module define un tipo de referencia disponible en su espacio de nombres. Un módulo (a veces denominado módulo estándar) es similar a una clase pero con algunas distinciones importantes. Cada módulo tiene exactamente una instancia y no necesita ser creado ni asignado a una variable. Los módulos no admiten la herencia ni implementan interfaces. Tenga en cuenta que un módulo no es un tipo en el sentido en que lo son una clase o una estructura; es decir, no puede declarar que un elemento de programación tenga el tipo de datos de un módulo.
Sólo puede utilizar Module en el nivel de espacio de nombres. Esto significa que el contexto de la declaración de un módulo debe ser un archivo de código fuente o espacio de nombres y no puede ser una clase, estructura, módulo, interfaz, procedimiento o bloque. No puede anidar un módulo dentro de otro módulo ni dentro de cualquier tipo. Para obtener más información, vea Contextos de declaración y niveles de acceso predeterminados.
Un módulo tiene el mismo período de duración que el programa. Dado que sus miembros son todos de tipo Shared, también tienen los períodos de duración iguales al del programa.
De manera predeterminada, el acceso a los módulos es de tipo Friend (Visual Basic). 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 de forma implícita de tipo Shared.
Clases y módulos
Estos elementos tienen muchas similitudes, pero hay también 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 les llama clases y módulos, respectivamente.
Miembros compartidos. Puede controlar si un miembro de una clase es un miembro compartido o un miembro de instancia.
Orientación a objetos. Las clases están orientadas a los objetos, pero los módulos no. Por tanto, sólo se pueden crear instancias como objetos de las clases. Para obtener más información, vea Clases y módulos.
Reglas
Modificadores. Todos los miembros de módulo son implícitamente de tipo Shared (Visual Basic). No puede utilizar la palabra clave Shared 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 de Object, del que heredan todos los módulos. En particular, un módulo no puede heredar de otro.
No puede utilizar Inherits (Instrucción) en una definición de módulo, incluso si es para especificar Object.
Propiedad Default. No puede definir Propiedades predeterminadas en un módulo.
Comportamiento
Nivel de acceso. En un módulo, puede declarar cada miembro con su propio nivel de acceso. Los miembros de módulo tienen como valor predeterminado acceso de tipo Public (Visual Basic), excepto las variables y constantes, que tienen como valor predeterminado acceso de tipo Private (Visual Basic). Cuando un módulo tiene un acceso más restringido que uno de sus miembros, tiene prioridad el nivel de acceso del módulo especificado.
Ámbito. Los módulos se incluyen en el ámbito de sus espacios de nombre.
El ámbito de todos los miembros del módulo es el módulo completo. Observe que en todos los miembros se realiza la promoción de tipos, que provoca que su ámbito sea el 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, si la referencia procede del exterior del módulo debe calificar cualquier referencia a dichos miembros con el nombre del módulo adecuado. Para obtener más información, vea Resolver una referencia cuando muchas variables tienen el mismo nombre.
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
Vea también
Conceptos
Referencia
Instrucción Class (Visual Basic)