Partager via


Instruction module

Déclare le nom d’un module et introduit la définition des variables, propriétés, événements et procédures que le module comprend.

Syntaxe

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

Pièces

attributelist
Optionnel. Consultez la liste des attributs.

accessmodifier
Optionnel. Il peut s’agir de l’un des éléments suivants :

Consultez les niveaux d’accès en Visual Basic.

name
Obligatoire. Nom de ce module. Voir Noms d’éléments déclarés.

statements
Optionnel. Instructions qui définissent les variables, les propriétés, les événements, les procédures et les types imbriqués de ce module.

End Module
Met fin à la Module définition.

Remarques

Une Module instruction définit un type de référence disponible dans son espace de noms. Un module (parfois appelé module standard) est similaire à une classe, mais avec des distinctions importantes. Chaque module a exactement une instance et n’a pas besoin d’être créé ou affecté à une variable. Les modules ne prennent pas en charge l’héritage ou n’implémentent pas les interfaces. Notez qu’un module n’est pas un type dans le sens où une classe ou une structure est — vous ne pouvez pas déclarer un élément de programmation pour avoir le type de données d’un module.

Vous ne pouvez utiliser Module qu’au niveau de l’espace de noms. Cela signifie que le contexte de déclaration d’un module doit être un fichier source ou un espace de noms, et ne peut pas être une classe, une structure, un module, une interface, une procédure ou un bloc. Vous ne pouvez pas imbriquer un module dans un autre module ou dans n’importe quel type. Pour plus d’informations, consultez Contextes de déclaration et niveaux d’accès par défaut.

Un module a la même durée de vie que votre programme. Étant donné que ses membres sont tous Shared, ils ont également des durées de vie égales à celle du programme.

Les modules par défaut sont accessibles à Friend . Vous pouvez ajuster leurs niveaux d’accès avec les modificateurs d’accès. Pour plus d’informations, consultez Niveaux d’accès en Visual Basic.

Tous les membres d’un module sont implicitement Shared.

Classes et modules

Ces éléments ont de nombreuses similitudes, mais il existe également des différences importantes.

  • Terminologie. Les versions précédentes de Visual Basic reconnaissent deux types de modules : les modules de classe (fichiers .cls) et les modules standard (fichiers.bas). La version actuelle appelle ces classes et modules, respectivement.

  • Membres partagés. Vous pouvez contrôler si un membre d’une classe est un membre partagé ou un membre d’instance.

  • Orientation de l’objet. Les classes sont orientées objet, mais les modules ne le sont pas. Ainsi, seules les classes peuvent être instanciées en tant qu’objets. Pour plus d’informations, consultez Objets et classes.

Règles

  • Modificateurs. Tous les membres du module sont implicitement partagés. Vous ne pouvez pas utiliser le mot clé lors de la Shared déclaration d’un membre et vous ne pouvez pas modifier l’état partagé d’un membre.

  • Héritage. Un module ne peut hériter d’aucun type autre que Objectcelui duquel tous les modules héritent. En particulier, un module ne peut pas hériter d’un autre.

    Vous ne pouvez pas utiliser l’instruction Inherits dans une définition de module, même pour spécifier Object.

  • Propriété par défaut. Vous ne pouvez pas définir de propriétés par défaut dans un module. Pour plus d’informations, consultez Default.

Comportement

  • Niveau d’accès. Dans un module, vous pouvez déclarer chaque membre avec son propre niveau d’accès. Les membres du module ont la valeur par défaut pour l’accès public , à l’exception des variables et des constantes, qui sont par défaut l’accès privé . Lorsqu’un module a plus d’accès restreint qu’un de ses membres, le niveau d’accès au module spécifié est prioritaire.

  • Portée. Un module est dans l’étendue de son espace de noms.

    L’étendue de chaque membre de module est le module entier. Notez que tous les membres subissent une promotion de type, ce qui entraîne la promotion de leur étendue vers l’espace de noms contenant le module. Pour plus d’informations, consultez Promotion de type.

  • Qualification. Vous pouvez avoir plusieurs modules dans un projet, et vous pouvez déclarer des membres portant le même nom dans deux modules ou plus. Toutefois, vous devez qualifier toute référence à un tel membre avec le nom de module approprié si la référence provient de l’extérieur de ce module. Pour plus d’informations, consultez Références aux éléments déclarés.

Exemple :

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

Voir aussi