I parametri opzionali sono dei parametri che vengono passati a un metodo e per i quali viene definito un valore di default. Se non viene passato un valore corrispondente a questi parametri, quindi, verrà utilizzato il valore di default.
Fino alla versione 2008 non era possibile passare un valore nullo, era necessario fornire sempre un valore valido. Dalla versione 2010 possiamo utilizzare un parametro Nullable, cioè un parametro che ammette il valore Nothing e che può essere verificato con l'operatore Is Nothing, come si può vedere dal codice seguente:
Visual Basic
- Private Sub MetodoConParamNullable(
- ByVal param1 As String,
- Optional ByVal param2 As Integer? = Nothing)
- If param2 Is Nothing Then
- MessageBox.Show("Parametro nullo")
- End If
- End Sub
Un'altra caratteristica importante è la possibilità di utilizzare il nome di un parametro opzionale per assegnare un valore. Questo permette di non dover specificare tutti i parametri opzionali che precedono l'unico che vogliamo specificare. Per esempio:
Visual Basic
- ' definiamo una funzione che restituisce
- ' una stringa composta da altre tre stringhe
- ' e con parametri opzionali
- Public Function concatena(
- Optional ByVal a As String = "a",
- Optional ByVal b As String = "b",
- Optional ByVal c As String = "c") As String
- Return a & b & c
- End Function
-
- ' proviamo la funzione ...
- Public Sub ParamDenominati()
- ' ... senza passare parametri
- MessageBox.Show(concatena.ToString)
- ' ... passando solo il terzo parametro
- MessageBox.Show(concatena(c:="x").ToString)
- ' ... passando solo il secondo parametro
- MessageBox.Show(concatena(b:="y").ToString)
- End Sub
Il risultato sarà costituito da tre messaggi, rispettivamente: "abc", "abx" e "ayc".