Questa pagina è stata utile?
I suggerimenti relativi al contenuto di questa pagina sono importanti. Comunicaceli.
Altri suggerimenti?
1500 caratteri rimanenti
Esporta (0) Stampa
Espandi tutto
Importante È possibile che questo documento non rappresenti le procedure consigliate per lo sviluppo attuale e che i collegamenti ai download e ad altre risorse non siano più validi. La versione consigliata attuale è disponibile qui.

Parametri facoltativi

Aggiornamento: novembre 2007

È possibile specificare che un parametro di routine è facoltativo e non è necessario fornire alcun argomento quando la routine viene chiamata. I parametri facoltativi sono indicati dalla parola chiave Optional nella definizione della routine. È necessario attenersi alle regole che seguono:

  • È necessario che ciascun parametro facoltativo nella definizione della routine specifichi un valore predefinito.

  • È necessario che tale valore predefinito per un parametro facoltativo sia un'espressione costante.

  • Ciascun parametro che segue un parametro facoltativo nella definizione della routine deve essere anch'esso facoltativo.

Nella sintassi seguente viene illustrata una dichiarazione di routine con un parametro facoltativo:

Sub sub name(ByVal parameter 1 As data type 1, Optional ByVal parameter 2 As data type 2 = default value)

Quando si chiama una routine con un parametro facoltativo, è possibile scegliere se fornire l'argomento o meno. Se non lo si fornisce, la routine utilizza il valore predefinito dichiarato per quel parametro.

Quando si omettono uno o più argomenti facoltativi nell'elenco degli argomenti, utilizzare virgole in sequenza per contrassegnarne la posizione. La chiamata di esempio che segue fornisce il primo e il quarto argomento, ma non il secondo o il terzo:

Call sub name(argument 1, , , argument 4)

Una routine non può rilevare, in fase di esecuzione, se un determinato argomento è stato omesso o se il codice di chiamata ha fornito in modo esplicito il valore predefinito. Se è necessario fare questa distinzione, è possibile impostare come predefinito un valore improbabile. La routine riportata di seguito definisce il parametro facoltativo office e ne verifica il valore predefinito, QJZ, per controllare se è stato omesso nella chiamata:

Sub notify(ByVal company As String, Optional ByVal office As String = "QJZ")
    If office = "QJZ" Then
        Debug.WriteLine("office not supplied -- using Headquarters")
        office = "Headquarters"
    End If
    ' Insert code to notify headquarters or specified office.
End Sub


Se il parametro facoltativo è un tipo di riferimento come String, è possibile utilizzare Nothing come valore predefinito, a meno che esso non sia un valore previsto per l'argomento.

Un altro modo per definire una routine con parametri facoltativi consiste nell'utilizzare l'overload. Nel caso di un parametro facoltativo, è possibile definire due versioni di overload della routine, una con il parametro e l'altra senza. Questo metodo diventa più complesso con l'aumentare del numero dei parametri facoltativi, tuttavia ha il vantaggio di assicurare che il programma di chiamata fornisca tutti gli argomenti facoltativi.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2015 Microsoft