Istruzione Sub (Visual Basic)
Consente di dichiarare il nome, i parametri e il codice con i quali si definisce una routine Sub.
[ <attributelist> ] [ Partial ] [ accessmodifier ] [ proceduremodifiers ] [ Shared ] [ Shadows ]
Sub name [ (Of typeparamlist) ] [ (parameterlist) ] [ Implements implementslist | Handles eventlist ]
[ statements ]
[ Exit Sub ]
[ statements ]
End Sub
Parti
Argomento |
Definizione |
attributelist |
Facoltativo. Vedere Elenco degli attributi. |
Partial |
Facoltativo. Indica la definizione di un metodo parziale. Vedere Metodi parziali (Visual Basic). |
accessmodifier |
Facoltativo. ad esempio uno dei seguenti: |
proceduremodifiers |
Facoltativo. ad esempio uno dei seguenti:
|
Shared |
Facoltativo. Vedere Shared. |
Shadows |
Facoltativo. Vedere Shadows. |
name |
Obbligatoria. Nome della routine. Vedere Nomi di elementi dichiarati (Visual Basic). Per creare una routine del costruttore per una classe, impostare il nome di una routine Sub sulla parola chiave New. Per ulteriori informazioni, vedere Durata degli oggetti: come creare e distruggere oggetti (Visual Basic). |
typeparamlist |
Facoltativo. Elenco dei parametri di tipo per una routine generica. Vedere Elenco dei tipi. |
parameterlist |
Facoltativo. Elenco dei nomi di variabili locali che rappresentano i parametri di questa routine. Vedere Elenco dei parametri (Visual Basic). |
Implements |
Facoltativo. Consente di indicare che questa procedura implementa una o più routine Sub, ognuna definita in un'interfaccia implementata della classe o dalla struttura contenente la routine. Vedere Istruzione Implements. |
implementslist |
Obbligatoria se viene fornita Implements. Elenco di routine Sub implementate. implementedprocedure [ , implementedprocedure ... ] Ogni implementedprocedure presenta la sintassi e le parti seguenti: interface.definedname
ParteDescrizione
interface Obbligatoria.Nome di un'interfaccia implementata dalla classe o struttura contenente questa routine.
definedname Obbligatorio.Nome mediante il quale la routine viene definita in interface.
|
Handles |
Facoltativo. Consente di indicare che questa routine è in grado di gestire uno o più eventi specifici. Vedere Clausola Handles (Visual Basic). |
eventlist |
Obbligatoria se viene fornita Handles. Elenco di eventi gestiti dalla routine. eventspecifier [ , eventspecifier ... ] Ogni eventspecifier presenta la sintassi e le parti seguenti: eventvariable.event
ParteDescrizione
eventvariable Obbligatoria.La variabile oggetto dichiarata con il tipo di dati della classe o della struttura che genera l'evento.
event Obbligatorio.Nome dell'evento gestito dalla routine.
|
statements |
Facoltativo. Blocco di istruzioni da eseguire nella routine. |
End Sub |
Consente di terminare la definizione di questa routine. |
Note
È necessario che il codice eseguibile sia inserito all'interno di una routine. Quando non è necessario restituire un valore al codice chiamante, utilizzare una routine Sub. Se, invece, è necessario restituire un valore, utilizzare una routine Function.
È possibile utilizzare la parola chiave Sub solo a livello di modulo. In altri termini, il contesto della dichiarazione per una routine di tipo Sub deve essere una classe, una struttura, un modulo o un'interfaccia e non può essere un file di origine, uno spazio dei nomi, una routine o un blocco. Per ulteriori informazioni, vedere Contesti delle dichiarazioni e livelli di accesso predefiniti (Visual Basic).
L'impostazione predefinita delle routine Sub è l'accesso pubblico. È possibile modificarne i livelli di accesso mediante gli appositi modificatori.
Regole
- Implementazione. Se la routine utilizza la parola chiave Implements, la classe o la struttura che la contiene deve includere un'istruzione Implements subito dopo la relativa istruzione Class o Structure. Nell'istruzione Implements deve essere compresa ogni interfaccia specificata in implementslist. Il nome tramite il quale un'interfaccia definisce la Sub tuttavia (in definedname) non deve essere uguale al nome della sua routine (in name).
Comportamento
Chiusura di una routine. Quando la routine Sub chiude il codice che effettua la chiamata, l'esecuzione continua con l'istruzione che segue l'istruzione che l'ha chiamata.
Le istruzioni Exit Sub e Return provocano un'uscita immediata da una routine Sub. Qualsiasi numero delle istruzioni Exit Sub e Return può essere visualizzato in un punto qualsiasi della procedura ed è possibile mescolare le istruzioni Exit Sub e Return.
Nell'esempio seguente viene illustrato un ritorno da una routine Sub.
Sub mySub(ByVal q As String) Return End Sub
Chiamata di una routine. Una routine Sub o Function è una routine distinta in grado di accettare parametri e di eseguire una serie di istruzioni. A differenza della routine Function che restituisce un valore, la routine Sub non può essere utilizzata nelle espressioni.
Per chiamare una routine Sub, è necessario specificarne il nome seguito dall'elenco degli argomenti racchiuso tra parentesi, all'interno di un'istruzione. Le parentesi possono essere omesse solo se non si specificano argomenti. Il codice sarà tuttavia più leggibile se si includono sempre le parentesi.
Anche l'istruzione Call può essere utilizzata per chiamare una routine Sub migliorando in tal modo la leggibilità del codice.
Risoluzione dei problemi
Ordine di esecuzione. In Visual Basic le espressioni aritmetiche vengono a volte riorganizzate per migliorare il grado di efficienza interno. Pertanto, se l'elenco degli argomenti include espressioni che chiamano altre routine, non è possibile fare affidamento su quelle che vengono chiamate in un particolare ordine.
Esempio
Nell'esempio seguente l'istruzione Sub viene utilizzata per definire il nome, i parametri e il codice che formano il corpo di una routine Sub.
Sub computeArea(ByVal length As Double, ByVal width As Double)
' Declare local variable.
Dim area As Double
If length = 0 Or width = 0 Then
' If either argument = 0 then exit Sub immediately.
Exit Sub
End If
' Calculate area of rectangle.
area = length * width
' Print area to Immediate window.
Debug.WriteLine(area)
End Sub
Vedere anche
Attività
Procedura: utilizzare una classe generica (Visual Basic)
Risoluzione dei problemi relativi alle routine (Visual Basic)
Procedura: creare un metodo parziale (Visual Basic)
Riferimenti
Istruzione Function (Visual Basic)
Elenco dei parametri (Visual Basic)
Istruzione Call (Visual Basic)