Condividi tramite


Istruzione Module

Dichiara il nome di un modulo e introduce la definizione di variabili, proprietà, eventi e procedure incluse nel modulo.

Sintassi

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

Parti

attributelist
Opzionale. Vedere Elenco attributi.

accessmodifier
Opzionale. Può essere uno dei seguenti:

Vedere Livelli di accesso in Visual Basic.

name
Obbligatorio. Nome del modulo. Vedere Nomi di elementi dichiarati.

statements
Opzionale. Istruzioni che definiscono le variabili, le proprietà, gli eventi, le routine e i tipi annidati di questo modulo.

End Module
Termina la Module definizione.

Osservazioni:

Un'istruzione Module definisce un tipo riferimento disponibile in tutto lo spazio dei nomi. Un modulo (talvolta chiamato modulo standard) è simile a una classe, ma con alcune importanti distinzioni. Ogni modulo ha esattamente un'istanza e non deve essere creata o assegnata a una variabile. I moduli non supportano l'ereditarietà o implementano interfacce. Si noti che un modulo non è un tipo nel senso che una classe o una struttura è , non è possibile dichiarare un elemento di programmazione per avere il tipo di dati di un modulo.

È possibile usare Module solo a livello di spazio dei nomi. Ciò significa che il contesto della dichiarazione per un modulo deve essere un file o uno spazio dei nomi di origine 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 qualsiasi tipo. Per altre informazioni, vedere Contesti di dichiarazione e livelli di accesso predefiniti.

Un modulo ha la stessa durata del programma. Poiché i suoi membri sono tutti Shared, hanno anche una durata uguale a quella del programma.

Per impostazione predefinita, i moduli hanno accesso Friend . È possibile regolare i livelli di accesso con i modificatori di accesso. Per altre informazioni, vedere Livelli di accesso in Visual Basic.

Tutti i membri di un modulo sono implicitamente Shared.

Classi e moduli

Questi elementi presentano molte analogie, ma esistono anche alcune differenze importanti.

  • Terminologia. Le versioni precedenti di Visual Basic riconoscono due tipi di moduli: moduli di classe (file con estensione cls) e moduli standard (file con estensione bas). La versione corrente chiama rispettivamente queste classi e moduli.

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

  • Orientamento dell'oggetto. Le classi sono orientate agli oggetti, ma i moduli non lo sono. È quindi possibile creare un'istanza solo di classi come oggetti. Per altre informazioni, vedere Oggetti e classi.

Regole

  • Modificatori. Tutti i membri del modulo sono condivisi in modo implicito. Non è possibile utilizzare la Shared parola chiave quando si dichiara un membro e non è possibile modificare lo stato condiviso di un membro.

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

    Non è possibile usare l'istruzione Inherits in una definizione di modulo, anche per specificare Object.

  • Default, proprietà. Non è possibile definire proprietà predefinite in un modulo. Per altre informazioni, vedere Impostazione predefinita.

Comportamento

  • Livello di accesso. All'interno di un modulo è possibile dichiarare ogni membro con il proprio livello di accesso. Per impostazione predefinita, i membri del modulo sono Accesso pubblico , ad eccezione di variabili e costanti, che per impostazione predefinita è Accesso privato . Quando un modulo ha accesso più limitato rispetto a uno dei relativi membri, il livello di accesso al modulo specificato ha la precedenza.

  • Ambito. Un modulo rientra nell'ambito dell'intero spazio dei nomi.

    L'ambito di ogni membro del modulo è l'intero modulo. Si noti che tutti i membri vengono sottoposti a innalzamento di livello del tipo, causando la promozione dell'ambito allo spazio dei nomi contenente il modulo. Per altre informazioni, vedere Promozione dei tipi.

  • Qualificazione. È possibile avere più moduli in un progetto ed è possibile dichiarare 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 proviene dall'esterno di tale modulo. Per altre informazioni, vedere Riferimenti agli elementi dichiarati.

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