Partager via


Module, instruction

Mise à jour : novembre 2007

Déclare le nom d'un module et introduit la définition des variables, propriétés, événements et procédures contenus dans le module.

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

Éléments

  • attributelist
    Facultatif. Consultez Liste d'attributs.

  • accessmodifier
    Facultatif. Il peut s'agir de l'une des valeurs suivantes :

    Consultez Niveaux d'accès dans Visual Basic.

  • name
    Obligatoire. Nom de ce module. Consultez Noms d'éléments déclarés.

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

  • End Module
    Met fin à la définition Module.

Notes

Une instruction Module définit un type référence disponible dans l'ensemble de son espace de noms. Un module (parfois appelé module standard)est semblable à une classe, à quelques distinctions importantes près. Chaque module contient exactement une instance et ne doit pas être créé ou assigné à une variable. Les modules ne prennent pas en charge l'héritage ou n'implémentent pas d'interfaces. Notez qu'un module n'est pas un type dans le sens où une classe ou une structure l'est ; vous ne pouvez pas déclarer un élément de programmation comme ayant le type de données d'un module.

Vous pouvez utiliser Module seulement 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 module, ou dans un 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. Ses membres étant tous Shared, ils ont également une durée de vie équivalente à celle du programme.

Les modules disposent par défaut d'un accès Friend (Visual Basic). Vous pouvez régler leurs niveaux d'accès avec les modificateurs d'accès. Pour plus d'informations, consultez Niveaux d'accès dans Visual Basic.

Tous les membres d'un module sont implicitement Shared.

Classes et modules

Ces éléments présentent plusieurs similitudes, mais également des différences importantes.

  • Terminologie. Les versions antérieures de Visual Basic reconnaissent deux types de modules : les modules de classe (fichiers .cls) et les modules standard (fichiers .bas). Dans la version actuelle, ils sont désignés par 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. Par conséquent, seules les classes peuvent être instanciées comme des objets. Pour plus d'informations, consultez Classes et modules.

Règles

  • Modificateurs. Tous les membres de module sont implicitement Shared (Visual Basic). 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 pas hériter d'un type autre que Object, d'où héritent tous les modules. En particulier, un module ne peut pas hériter d'un autre.

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

  • Propriété par défaut. Vous ne pouvez pas définir les propriétés Propriétés par défaut dans un module.

Comportement

  • Niveau d'accès. Dans un module, vous pouvez déclarer chaque membre avec son propre niveau d'accès. Les membres de module disposent par défaut d'un accès Public (Visual Basic), sauf les variables et les constantes qui possèdent par défaut un accès Private (Visual Basic). Lorsqu'un module dispose d'un accès plus restreint que l'un de ses membres, le niveau d'accès du module spécifié est prioritaire.

  • Portée. Un module est présent dans la portée pour son espace de noms.

    La portée de chaque membre de module est le module entier. Notez que tous les membres subissent une promotion de type qui entraîne la promotion de leur portée dans l'espace de noms qui contient le module. Pour plus d'informations, consultez Promotion de type.

  • Qualification. Un projet peut contenir plusieurs modules, et vous pouvez déclarer des membres avec le même nom dans au moins deux modules. Toutefois, vous devez qualifier toute référence à ce membre avec le nom de module approprié si la référence est externe à ce module. Pour plus d'informations, consultez Résolution d'une référence lorsque plusieurs variables ont le même nom.

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

Concepts

Promotion de type

Référence

Class, instruction (Visual Basic)

Namespace, instruction

Structure, instruction

Interface, instruction (Visual Basic)

Property, instruction