Condividi tramite


Routine Sub (Visual Basic)

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 Routine in Visual Basic.

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 subname[(parameterlist)]

' 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] parametername As datatype

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] parametername As tipo di dati = defaultvalue

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] subname [(argumentlist)]

È 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 Operatore New (Visual Basic). In seguito è possibile utilizzare la sintassi seguente per chiamare il metodo Sub sull'oggetto dell'istanza:

Oggetto.nomemetodo[(elencoargomenti)]

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.

tellOperator("file update")

Vedere anche

Attività

Procedura: chiamare una routine che non restituisce un valore (Visual Basic)

Procedura: chiamare un gestore eventi in Visual Basic

Riferimenti

Istruzione Sub (Visual Basic)

Concetti

Routine in Visual Basic

Routine Function (Visual Basic)

Routine Property (Visual Basic)

Routine di operatore (Visual Basic)

Parametri e argomenti delle routine (Visual Basic)