Optional (Visual Basic)
Specifica che è possibile omettere un argomento di routine quando si chiama la routine.
Note
Per ogni parametro facoltativo, è necessario specificare un'espressione costante come valore predefinito del parametro. Se l'espressione restituisce Nothing, il valore predefinito del tipo di dati valore viene utilizzato come valore predefinito del parametro.
Se l'elenco di parametri contiene un parametro facoltativo, ciascun parametro dall'deve essere facoltativo.
Il modificatore Optional può essere utilizzato nei seguenti contesti:
Nota
Nel chiamare una routine con o senza parametri facoltativi, è possibile passare gli argomenti tramite posizione o per nome.Per ulteriori informazioni, vedere Passaggio di argomenti in base alla posizione e al nome (Visual Basic).
Nota
È inoltre possibile definire una routine con parametri facoltativi utilizzando l'overload.Se si dispone di un parametro facoltativo, è possibile definire due versioni di overload della routine, di che accetta il parametro e che non fa.Per ulteriori informazioni, vedere Overload della routine (Visual Basic).
Esempio
Nell'esempio seguente viene definita una routine con un parametro facoltativo.
Public Function FindMatches(ByRef values As List(Of String),
ByVal searchString As String,
Optional ByVal matchCase As Boolean = False) As List(Of String)
Dim results As IEnumerable(Of String)
If matchCase Then
results = From v In values
Where v.Contains(searchString)
Else
results = From v In values
Where UCase(v).Contains(UCase(searchString))
End If
Return results.ToList()
End Function
Nell'esempio seguente viene illustrato come chiamare una routine con gli argomenti passati dalla posizione e gli argomenti passati per nome. La routine presenta due parametri facoltativi.
Private Sub TestParameters()
' Call the procedure with its arguments passed by position,
studentInfo("Mary", 19, #9/21/1981#)
' Omit one optional argument by holding its place with a comma.
studentInfo("Mary", , #9/21/1981#)
' Call the procedure with its arguments passed by name.
studentInfo(age:=19, birth:=#9/21/1981#, name:="Mary")
' Supply an argument by position and an argument by name.
studentInfo("Mary", birth:=#9/21/1981#)
End Sub
Private Sub studentInfo(ByVal name As String,
Optional ByVal age As Short = 0,
Optional ByVal birth As Date = #1/1/2000#)
Console.WriteLine("name: " & name)
Console.WriteLine("age: " & age)
Console.WriteLine("birth date: " & birth)
Console.WriteLine()
End Sub
Vedere anche
Riferimenti
Elenco dei parametri (Visual Basic)
Concetti
Parametri facoltativi (Visual Basic)