Share via


Istruzione Module

Consente di dichiarare il nome di un modulo e introduce la definizione di variabili, proprietà, eventi e procedure comprese dal modulo.

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

Parti

Note

Un'istruzione Module consente di definire un tipo di riferimento disponibile tramite il suo spazio dei nomi. Un modulo (denominato a volte modulo standard)è simile a una classe ma con alcune distinzioni importanti. Ogni modulo ha esattamente un'istanza e non deve essere creata o assegnata a una variabile. I moduli non sono in grado di supportare interfacce di ereditarietà o implementazione. Si noti che un modulo non è un tipo nello stesso senso di una classe o struttura. Non è possibile dichiarare che un elemento di programmazione abbia il tipo di dati di un modulo.

La parola chiave Module può essere utilizzata solo a livello di spazio dei nomi. Il altri termini, il contesto della dichiarazione per un modulo deve essere costituito di un file di origine o uno spazio dei nomi e non può essere una classe, una struttura, un modulo, un'interfaccia, una routine o un blocco. Non è possibile annidare un modulo all'interno di un altro modulo o all'interno di un tipo. Per ulteriori informazioni, vedere Contesti delle dichiarazioni e livelli di accesso predefiniti (Visual Basic).

La durata di un modulo corrisponde a quella del programma. Poiché i suoi membri sono tutti Shared la loro durata corrisponde anch'essa a quella del programma.

L'impostazione predefinita dei moduli è l'accesso Friend (Visual Basic). È possibile modificarne i livelli di accesso mediante gli appositi modificatori. Per ulteriori informazioni, vedere Livelli di accesso in Visual Basic.

Tutti i membri di un modulo sono Shared in modo implicito.

Classi e moduli

Questi elementi hanno molte similitudini, ma vi sono anche alcune differenze significative.

  • Terminologia. Nelle versioni precedenti di Visual Basic vengono riconosciuti due tipi di moduli: moduli di classe (file con estensione cls) e moduli standard (file con estensione bas). La versione corrente li definisce classi e moduli, rispettivamente.

  • Membri condivisi. È possibile controllare se un membro di una classe è un membro condiviso o dell'istanza.

  • Orientamento dell'oggetto. Le classi sono orientate agli oggetti mentre i moduli no. , quindi è possibile creare istanze come oggetti solo delle classi. Per ulteriori informazioni, vedere Oggetti e classi in Visual Basic.

Regole

  • Modificatori. Tutti i membri dei moduli sono considerati Shared (Visual Basic) in modo implicito. Quando si dichiara un membro, non è possibile utilizzare la parola chiave Shared e non è possibile alterare lo stato condiviso di nessun membro.

  • Ereditarietà. Un modulo non può ereditare da un tipo diverso da Object, da cui ereditano tutti i moduli. In particolare, un modulo non può ereditare da un'altro.

    Non è possibile utilizzare l'Istruzione Inherits nella definizione di un modulo, anche per specificare Object.

  • Proprietà predefinita. Non è possibile definire proprietà predefinite in un modulo. Per ulteriori informazioni, vedere Default (Visual Basic).

Comportamento

  • Livello di accesso. All'interno di un modulo è possibile dichiarare ogni membro con il suo livello di accesso personale. L'impostazione predefinita dei membri del modulo è l'accesso Public (Visual Basic), tranne che per variabili e costanti, la cui impostazione predefinita è l'accesso Private (Visual Basic). Quando un modulo ha un accesso più ristretto rispetto a uno dei suoi membri, avrà la precedenza il livello di accesso specificato del modulo.

  • Ambito. L'ambito si trova nell'area di validità tramite il suo spazio dei nomi.

    L'ambito di un membro di ogni modulo è l'intero modulo. Si noti che tutti i membri sono sottoposti a una promozione del tipo, che fa sì che il loro ambito venga promosso allo spazio dei nomi contenente il modulo. Per ulteriori informazioni, vedere Promozione tipo (Visual Basic).

  • Qualificazione. Un progetto può contenere più moduli ed è possibile dichiarare i membri con lo stesso nome in due o più moduli. Tuttavia è necessario qualificare qualsiasi riferimento a tale membro con il nome del modulo appropriato se il riferimento si trova al di fuori del modulo. Per ulteriori informazioni, vedere Riferimenti a elementi dichiarati (Visual Basic).

Esempio

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

Vedere anche

Riferimenti

Istruzione Class (Visual Basic)

Istruzione Namespace

Istruzione Structure

Istruzione Interface (Visual Basic)

Istruzione Property

Concetti

Promozione tipo (Visual Basic)