Condividi tramite


Routine Sub

Aggiornamento: novembre 2007

Una routine Sub è costituita da una serie di istruzioni Visual Basic racchiuse tra le istruzioni Sub ed End Sub. La routine Sub esegue un'attività e quindi restituisce il controllo al codice chiamante, senza tuttavia restituire a quest'ultimo un valore.

Ogni volta che la routine viene chiamata, le relative istruzioni vengono eseguite a partire dalla prima istruzione eseguibile dopo l'istruzione Sub e fino alla prima istruzione End Sub, Exit Sub o Return rilevata.

È possibile definire una routine Sub in moduli, classi e strutture. Per impostazione predefinita, la routine è Public ed è pertanto possibile chiamarla da qualsiasi punto dell'applicazione che disponga dell'accesso al modulo, alla classe o alla struttura nella quale è stata definita. Il termine metodo descrive una procedura Sub o Function alla quale si accede al di fuori del relativo modulo, classe o struttura che la definisce. Per ulteriori informazioni, vedere Metodi di classe.

Una routine Sub può accettare argomenti, ad esempio costanti, variabili o espressioni, passati dal codice chiamante.

Sintassi di dichiarazione

La sintassi per dichiarare una routine Sub è la seguente:

[modificatori] Sub nomesub[(elencoparametri)]

' Statements of the Sub procedure.

End Sub

Nei modifiers è possibile specificare il livello di accesso e le informazioni sull'overload, l'override, la condivisione e lo shadowing. Per ulteriori informazioni, vedere Istruzione Sub (Visual Basic).

Dichiarazione dei parametri

Ogni parametro di routine viene dichiarato in modo simile a una variabile, specificandone il nome e il tipo di dati. È possibile specificare anche il meccanismo di passaggio e se il parametro è facoltativo oppure una matrice di parametri.

La sintassi per ciascun parametro dell'elenco dei parametri è la seguente:

[Optional] [ByVal | ByRef] [ParamArray] nomeparametro As tipodidati

Se il parametro è facoltativo, è necessario specificare nella dichiarazione anche un valore predefinito. La sintassi per la specifica di un valore predefinito è la seguente:

Optional [ByVal | ByRef] nomeparametro As tipodidati = valorepredefinito

Parametri come variabili locali

Quando il controllo passa alla routine, ogni parametro viene considerato come variabile locale. Questo significa che la relativa durata è identica a quella della routine e l'ambito è l'intera routine.

Sintassi di chiamata

Una routine Sub viene chiamata in modo esplicito tramite un'istruzione di chiamata autonoma. Non è possibile chiamarla utilizzandone il nome in un'espressione. È necessario specificare valori per tutti gli argomenti non facoltativi e racchiudere l'elenco degli argomenti tra parentesi. Se non viene specificato alcun argomento, è anche possibile omettere le parentesi. L'utilizzo della parola chiave Call è facoltativo ma non consigliato.

La sintassi di una chiamata a una routine Sub è la seguente:

[Call] nomesub[(elencoargomenti)]

È possibile chiamare il metodo Sub dall'esterno della classe da cui è definito. In primo luogo è necessario utilizzare la parola chiave New per creare un'istanza della classe o chiamare un metodo che restituisce un'istanza della classe. Per ulteriori informazioni, vedere Procedura: utilizzare la parola chiave New. In seguito è possibile utilizzare la sintassi seguente per chiamare il metodo Sub sull'oggetto dell'istanza:

Oggetto.nomemetodo[(elencoargomenti)]

Per ulteriori informazioni, vedere Procedura: eseguire operazioni con i metodi.

Illustrazione della dichiarazione e della chiamata

La routine Sub riportata di seguito indica all'utente del computer quale attività l'applicazione sta per eseguire e visualizza un timestamp. Anziché duplicare questo codice all'inizio di ogni attività, l'applicazione chiama semplicemente tellOperator da posizioni diverse. Ogni chiamata passa una stringa nell'argomento task , che identifica l'attività che sta per essere avviata.

Sub tellOperator(ByVal task As String)
    Dim stamp As Date
    stamp = TimeOfDay()
    MsgBox("Starting " & task & " at " & CStr(stamp))
End Sub

Nell'esempio riportato di seguito viene illustrata una tipica chiamata a tellOperator.

Call tellOperator("file update")

Vedere anche

Attività

Procedura: chiamare una routine che non restituisce un valore

Procedura: chiamare un gestore eventi in Visual Basic

Concetti

Routine in Visual Basic

Routine Function

Routine Property

Routine di operatore

Parametri e argomenti delle routine

Riferimenti

Istruzione Sub (Visual Basic)