Istruzione Sub (Visual Basic)
Aggiornamento: novembre 2007
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
attributelist
Facoltativo. Vedere Elenco degli attributi.Partial
Facoltativo. Indica la definizione di un metodo parziale. Vedere Metodi parziali.accessmodifier
Facoltativo. Può essere uno dei seguenti:proceduremodifiers
Facoltativo. Può essere uno dei seguenti:MustOverride Overrides
NotOverridable Overrides
Shared
Facoltativo. Vedere Shared.Shadows
Facoltativo. Vedere Shadows.name
Obbligatorio. Nome della routine. Vedere Nomi di elementi dichiarati.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 parametri.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 elemento implementedprocedure è associato alla sintassi e alle parti seguenti:
interface.definedname
Parte
Descrizione
interface
Obbligatorio. 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 Handles.eventlist
Obbligatoria se viene fornita Handles. Elenco di eventi gestiti dalla routine.eventspecifier [ , eventspecifier ... ]
Ogni elemento eventspecifier è associato alla sintassi e alle parti seguenti:
eventvariable.event
Parte
Descrizione
eventvariable
Obbligatorio. 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.EndSub
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 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 predefinito.
L'impostazione predefinita delle routine Sub è l'accesso pubblico. È possibile modificarne i livelli di accesso mediante i modificatori di accesso.
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. È possibile inserire un numero illimitato di istruzioni Exit Sub e Return in qualsiasi punto della routine e combinare 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
Risoluzione dei problemi relativi alle routine
Procedura: creare un metodo parziale (Visual Basic)
Concetti
Riferimenti
Istruzione Function (Visual Basic)