Module, instruction

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

Éléments

attributelist
Optionnel. Consultez la Liste des attributs.

accessmodifier
Optionnel. Il peut s'agir d'une des méthodes suivantes :

Consultez Access levels in Visual Basic.

name
Obligatoire. Nom de ce module. Consultez Declared Element Names.

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 définition Module.

Notes

Une instruction Module 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 quelques 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 pouvez utiliser Module uniquement au niveau de l’espace de noms. Cela signifie que le contexte de déclaration pour 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 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 : accès ami. 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 : modules de classe (fichiers .cls) et 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é Shared lors de la 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 Object, à partir 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 Hériter 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 par défaut.

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 sont par défaut 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 font l’objet d’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 References to Declared Elements.

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