Parametri e argomenti delle routine
Aggiornamento: novembre 2007
Nella maggior parte dei casi una routine richiede alcune informazioni sulle circostanze in cui è stata chiamata. Una routine che esegue attività ripetute o condivise utilizza informazioni diverse per ogni chiamata. Tali informazioni sono costituite da variabili, costanti ed espressioni passate alla routine al momento della chiamata.
Un parametro rappresenta un valore da fornire alla routine al momento della chiamata. La dichiarazione della routine ne definisce i parametri.
È possibile definire una routine senza parametri oppure con uno o più parametri. La parte della definizione della routine in cui sono specificati i parametri è denominata elenco di parametri.
Un argomento rappresenta il valore fornito al parametro di una routine quando quest'ultima viene chiamata. Gli argomenti vengono forniti dal codice chiamante al momento della chiamata. La parte della chiamata di routine in cui sono specificati gli argomenti è definita elenco di argomenti.
Nell'illustrazione riportata di seguito è rappresentato il codice che chiama la routine safeSquareRoot da due posizioni diverse. Nella prima chiamata il valore della variabile x (4.0) viene passato al parametro number, quindi il valore restituito in root (2.0) viene assegnato alla variabile y. Nella seconda chiamata il valore letterale 9.0 viene passato a number, quindi il valore restituito (3.0) viene assegnato alla variabile z.
Passaggio di un argomento a un parametro
Per ulteriori informazioni, vedere Differenze tra parametri e argomenti.
Tipo di dati dei parametri
La definizione di un tipo di dati per un parametro avviene mediante la specifica della clausola As nella relativa dichiarazione. La funzione che segue, ad esempio, accetta una stringa e un valore integer.
Function appointment(ByVal day As String, ByVal hour As Integer) As String
' Insert code to return any appointment for the given day and time.
Return "appointment"
End Function
Se l'opzione di controllo dei tipi (Istruzione Option Strict) è Off, la clausola As è facoltativa, a meno che non venga utilizzata da qualche parametro e di conseguenza debba essere utilizzata da tutti i parametri. Se il controllo dei tipi è On, la clausola As è obbligatoria per tutti i parametri di routine.
Se il codice chiamante prevede la specifica di un argomento con un tipo di dati diverso da quello del parametro corrispondente, ad esempio Byte a un parametro String, deve eseguire una delle seguenti operazioni:
Specificare solo argomenti con tipi di dati che vengano convertiti nel tipo di dati più grande del parametro corrispondente.
Impostare Option Strict Off in modo da consentire conversioni implicite in tipi di dati più piccoli.
Oppure utilizzare una parola chiave di conversione per convertire in modo esplicito il tipo di dati.
Parametri di tipo
Una routine generica definisce inoltre uno o più parametri di tipo oltre ai normali parametri. Una routine generica consente al codice chiamante di passare tipi di dati diversi ogni volta che chiama la routine, in modo che i tipi di dati possano essere adattati ai requisiti di ciascuna singola chiamata. Per informazioni, vedere Routine generiche in Visual Basic.
Vedere anche
Attività
Procedura: definire un parametro per una routine
Procedura: passare argomenti a una routine
Concetti
Passaggio di argomenti per valore e per riferimento