Routine Sub (Visual Basic)
Una routine Sub
è una serie di istruzioni di Visual Basic racchiuse tra le istruzioni Sub
e End Sub
. La routine Sub
esegue un'attività e quindi restituisce il controllo al codice chiamante, ma non restituisce un valore al codice chiamante.
Ogni volta che viene chiamata la routine, vengono eseguite le relative istruzioni, a partire dalla prima istruzione eseguibile dopo l'istruzione Sub
e terminando con la prima istruzione End Sub
, Exit Sub
o Return
rilevata.
È possibile definire una routine Sub
in moduli, classi e strutture. Per impostazione predefinita, è Public
, ed è quindi possibile chiamarla da qualsiasi posizione dell'applicazione che abbia accesso al modulo, alla classe o alla struttura in cui è stata definita. Il termine metodo descrive una routine Sub
o Function
a cui si accede dall'esterno del modulo, della classe o della struttura che definisce. Per altre informazioni, vedere Routine.
Una routine Sub
può accettare argomenti, ad esempio costanti, variabili o espressioni, che vengono passati al codice chiamante.
Sintassi di dichiarazione
La sintassi per dichiarare una routine Sub
è la seguente:
[modifiers] Sub SubName[(parameterList)]
' Statements of the Sub procedure.
End Sub
modifiers
può specificare il livello di accesso e le informazioni sull'overload, l'override, la condivisione e shadowing. Per altre informazioni, vedere Istruzione Sub.
Dichiarazione dei parametri
Ogni parametro di routine viene dichiarato in modo analogo a come si dichiara una variabile, specificando il nome del parametro e il tipo di dati. È anche possibile specificare il meccanismo di passaggio e se il parametro è facoltativo o una matrice di parametri.
La sintassi per ogni parametro nell'elenco dei parametri è la seguente:
[Optional] [ByVal | ByRef] [ParamArray] parameterName As DataType
Se il parametro è facoltativo, è necessario specificare anche un valore predefinito come parte della relativa dichiarazione. La sintassi per specificare un valore predefinito è la seguente:
Optional [ByVal | ByRef] parameterName As DataType = defaultValue
Parametri come variabili locali
Quando il controllo passa alla routine, ogni parametro viene considerato come una variabile locale. Ciò significa che la sua durata è uguale a quella della routine e il suo ambito è l'intera routine.
Sintassi di chiamata
Si richiama una routine Sub
in modo esplicito con un'istruzione chiamante autonoma. Non è possibile chiamarla usando il relativo nome in un'espressione. È necessario specificare i valori per tutti gli argomenti che non sono facoltativi ed è necessario racchiudere l'elenco degli argomenti tra parentesi. Se non vengono specificati argomenti, è facoltativamente possibile omettere le parentesi. L'uso della parola chiave Call
è facoltativo ma non consigliato.
La sintassi per una chiamata a una routine Sub
è la seguente:
[Call] SubName[(argumentlist)]
È possibile chiamare un metodo Sub
dall'esterno della classe che lo definisce. Prima di tutto, è necessario usare la parola chiave New
per creare un'istanza della classe o chiamare un metodo che restituisce un'istanza della classe. Per altre informazioni, vedere New Operator. È quindi possibile usare la sintassi seguente per chiamare il metodo Sub
sull'oggetto istanza:
object.MethodName[(argumentList)]
Illustrazione della dichiarazione e della chiamata
La routine Sub
seguente indica all'operatore del computer quale attività l'applicazione sta per eseguire e visualizza anche un timestamp. Anziché duplicare questo codice all'inizio di ogni attività, l'applicazione chiama semplicemente tellOperator
da varie posizioni. Ogni chiamata passa una stringa nell'argomento task
che identifica l'attività avviata.
Sub tellOperator(ByVal task As String)
Dim stamp As Date
stamp = TimeOfDay()
MsgBox("Starting " & task & " at " & CStr(stamp))
End Sub
Nell'esempio seguente viene illustrata una chiamata tipica a tellOperator
.
tellOperator("file update")