Share via


Procedura: definire un parametro per una routine

Aggiornamento: novembre 2007

Un parametro consente al codice chiamante di passare un valore alla routine quando ne esegue la chiamata. La dichiarazione di ciascun parametro per una routine avviene come la dichiarazione di una variabile, specificandone il nome e il tipo di dati. È inoltre possibile specificare il meccanismo di passaggio e se il parametro è facoltativo.

Per ulteriori informazioni, vedere Parametri e argomenti delle routine.

Per definire un parametro di routine

  1. Nella dichiarazione di routine aggiungere il nome di parametro all'elenco di parametri della routine, separandolo dagli altri parametri mediante virgole.

  2. Scegliere il tipo di dati del parametro.

  3. Inserire una clausola As dopo il nome del parametro per specificare il tipo di dati.

  4. Scegliere il meccanismo di passaggio desiderato per il parametro. Generalmente i parametri vengono passati per valore, a meno che non si desideri modificarne il valore nel codice chiamante mediante la routine.

  5. Inserire ByVal o ByRef prima del nome di parametro per specificare il meccanismo di passaggio. Per ulteriori informazioni, vedere Differenze tra il passaggio di argomenti per valore e per riferimento.

  6. Se il parametro è facoltativo, inserire Optional (Visual Basic) prima del meccanismo di passaggio e specificare un segno di uguale (=) e un valore predefinito dopo il tipo di dati del parametro.

    Nell'esempio di codice seguente viene definita la struttura di una routine Sub con tre parametri. I primi due sono obbligatori mentre il terzo è facoltativo. Nell'elenco di parametri le dichiarazioni di parametro sono separate da virgole.

    Sub updateCustomer(ByRef c As customer, ByVal region As String, _
      Optional ByVal level As Integer = 0)
      ' Insert code to update a customer object.
    End Sub
    

    Il primo parametro accetta un oggetto customer e updateCustomer può aggiornare direttamente la variabile passata a c in quanto l'argomento viene passato ByRef. La routine non può modificare i valori degli ultimi due argomenti in quanto vengono passati ByVal.

    Se il codice chiamante non fornisce alcun valore per il parametro level , viene automaticamente impostato il valore predefinito 0.

    Se l'opzione di controllo dei tipi (Istruzione Option Strict) è Off, la clausola As è facoltativa quando si definisce un parametro. Se, tuttavia, un parametro utilizza una clausola As, dovranno utilizzarla tutti i parametri. Se l'opzione di controllo dei tipi è On, la clausola As è obbligatoria per ogni definizione di parametro.

    La specifica dei tipi di dati per tutti gli elementi di programmazione è nota come tipizzazione forte. Quando si imposta Option Strict On, viene applicata la tipizzazione forte, che è particolarmente consigliata per i seguenti motivi:

    • Attiva il supporto IntelliSense per le variabili e i parametri, consentendo la visualizzazione delle relative proprietà e di altri membri mentre si digita il codice.

    • Consente al compilatore di eseguire la verifica dei tipi. In questo modo è possibile rilevare le istruzioni destinate ad avere esito negativo in fase di esecuzione a causa di errori quale l'overflow. Vengono inoltre rilevate le chiamate a metodi su oggetti che non li supportano.

    • Comporta un'esecuzione più veloce del codice. Ciò è possibile anche perché se non si specifica un tipo di dati per un elemento di programmazione, il compilatore di Visual Basic assegna automaticamente il tipo Object. Con il codice compilato potrebbe essere necessario eseguire più conversioni tra Object e altri tipi di dati, con un conseguente calo delle prestazioni.

Vedere anche

Attività

Procedura: passare argomenti a una routine

Concetti

Routine in Visual Basic

Routine Sub

Routine Function

Passaggio di argomenti per valore e per riferimento

Routine ricorsive

Overload della routine

Altre risorse

Programmazione orientata a oggetti in Visual Basic