Condividi tramite


Procedure secondarie (Visual Basic)

Una routine Sub è una serie di istruzioni di Visual Basic racchiuse tra le istruzioni Sub e End Sub. La Sub routine 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 End Subistruzione , Exit Subo Return rilevata.

È possibile definire una Sub routine in moduli, classi e strutture. Per impostazione predefinita, è Public, il che significa che è possibile chiamarlo da qualsiasi punto dell'applicazione che abbia accesso al modulo, alla classe o alla struttura in cui è stata definita. Il termine metodo descrive una Sub routine o Function a cui si accede dall'esterno del modulo di definizione, della classe o della struttura. Per altre informazioni, vedere Procedure.

Una routine Sub può accettare argomenti, ad esempio costanti, variabili o espressioni, che vengono passati dal 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 l'ombreggiatura. Per ulteriori informazioni, consultare Dichiarazione secondaria.

Dichiarazione di parametro

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 di 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 procedura e il suo ambito è l'intera procedura.

Sintassi di chiamata

È possibile richiamare una Sub routine in modo esplicito con un'istruzione chiamante autonoma. Non è possibile chiamarlo usando il 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, è possibile omettere facoltativamente le parentesi. L'uso della Call parola chiave è facoltativo ma non consigliato.

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

[Call] SubName[(argumentlist)]

È possibile chiamare un Sub metodo dall'esterno della classe che lo definisce. Prima di tutto, è necessario usare la New parola chiave per creare un'istanza della classe o chiamare un metodo che restituisce un'istanza della classe . Per ulteriori informazioni, vedere New Operator. È quindi possibile usare la sintassi seguente per chiamare il metodo sull'oggetto istanza Sub.

object.MethodName[(argumentList)]

Illustrazione della dichiarazione e della chiamata

La procedura seguente Sub indica all'operatore 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 tellOperator solo da diverse 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")

Vedere anche