Elenco dei parametri (Visual Basic)

Specifica i parametri previsti da una routine quando viene chiamata. Più parametri vengono separati da virgole. Di seguito è riportata la sintassi per un parametro.

Sintassi

[ <attributelist> ] [ Optional ] [{ ByVal | ByRef }] [ ParamArray ]
parametername[( )] [ As parametertype ] [ = defaultvalue ]

Parti

attributelist
Facoltativo. Elenco degli attributi applicabili al parametro. È necessario racchiudere l'elenco degli attributi tra parentesi angolari ("<" e ">").

Optional
Facoltativo. Specifica che questo parametro non è obbligatorio quando viene chiamata la routine.

ByVal
Facoltativo. Specifica che la routine non può sostituire o riassegnare l'elemento variabile sottostante l'argomento corrispondente nel codice chiamante.

ByRef
Facoltativo. Specifica che la routine può modificare l'elemento della variabile sottostante nel codice chiamante nello stesso modo in cui può farlo lo stesso codice chiamante.

ParamArray
Facoltativo. Specifica che l'ultimo parametro nell'elenco di parametri è una matrice facoltativa di elementi del tipo di dati specificato. In questo modo il codice chiamante passa un numero arbitrario di argomenti alla routine.

parametername
Obbligatorio. Nome della variabile locale che rappresenta il parametro.

parametertype
Richiesto se Option Strict è On. Tipo di dati della variabile locale che rappresenta il parametro.

defaultvalue
Obbligatorio per i parametri Optional. Qualsiasi costante o espressione costante che restituisce il tipo di dati del parametro. Se il tipo è Object o una classe, un'interfaccia, una matrice o una struttura, il valore predefinito può essere solo Nothing.

Osservazioni:

I parametri sono racchiusi tra parentesi e separati da virgole. Un parametro può essere dichiarato con qualsiasi tipo di dati. Se non si specifica parametertype, per impostazione predefinita è Object.

Quando il codice chiamante chiama la routine, passa un argomento a ogni parametro obbligatorio. Per altre informazioni, vedere Differenze tra parametri e argomenti.

L'argomento che il codice chiamante passa a ogni parametro è un puntatore a un elemento sottostante nel codice chiamante. Se questo elemento non è variabile (costante, valore letterale, enumerazione o espressione), è impossibile modificare il codice. Se si tratta di un elemento variabile (variabile dichiarata, campo, proprietà, elemento matrice o elemento della struttura), il codice chiamante può modificarlo. Per altre informazioni, vedere Differenze tra argomenti modificabili e non modificabili.

Se viene passato un elemento variabile ByRef, la routine può anche modificarlo. Per altre informazioni, vedere Differenze tra il passaggio di un argomento per valore e per riferimento.

Regole

  • Parentesi. Se si specifica un elenco di parametri, è necessario racchiuderlo tra parentesi. Se non sono presenti parametri, è comunque possibile usare parentesi che racchiudono un elenco vuoto. In questo modo si migliora la leggibilità del codice chiarendo che l'elemento è una routine.

  • Parametri facoltativi. Se si usa il modificatore di Optional in un parametro, tutti i parametri successivi nell'elenco devono essere facoltativi e essere dichiarati usando il modificatore Optional.

    Ogni dichiarazione di parametro facoltativa deve fornire la clausola defaultvalue.

    Per altre informazioni, vedere Parametri facoltativi.

  • Matrici di parametri. È necessario specificare ByVal per un parametro ParamArray.

    Non è possibile usare sia Optional che ParamArray nello stesso elenco di parametri.

    Per altre informazioni, vedere Matrici di parametri.

  • Passaggio del meccanismo. Il meccanismo predefinito per ogni argomento è ByVal, il che significa che la routine non può modificare l'elemento della variabile sottostante. Tuttavia, se l'elemento è un tipo riferimento, la routine può modificare il contenuto o i membri dell'oggetto sottostante, anche se non può sostituire o riassegnare l'oggetto stesso.

  • Nomi dei parametri. Se il tipo di dati del parametro è una matrice, seguire parametername immediatamente tra parentesi. Per altre informazioni sui nomi dei parametri, vedere Nomi di elementi dichiarati.

Esempio

Nell'esempio seguente viene illustrata una routine Function che definisce due parametri.

Public Function HowMany(ByVal ch As Char, ByVal st As String) As Integer
End Function
Dim howManyA As Integer = HowMany("a"c, "How many a's in this string?")

Vedi anche