Partager via


Module, instruction

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

Composants

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 (Visual Basic).

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 beaucoup de similitudes, mais ils comportent également beaucoup de différences.

  • 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 respectivement ces classes et ces modules.

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

  • Orientation objet. Les classes sont orientées objet, ce qui n'est pas le cas des modules. Par conséquent, seules les classes peuvent être instanciées comme des objets. Pour plus d'informations, consultez Objets et classes en Visual Basic.

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.

  • Default, propriété. Vous ne pouvez pas définir de propriétés par défaut dans un module. Pour plus d'informations, consultez Default (Visual Basic).

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 (Visual Basic).

  • 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éférences aux éléments déclarés (Visual Basic).

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

Référence

Class, instruction (Visual Basic)

Namespace, instruction

Structure, instruction

Interface, instruction (Visual Basic)

Property, instruction

Concepts

Promotion de type (Visual Basic)