Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Specifica che un argomento di routine può essere omesso quando viene chiamata la routine.
Osservazioni:
Per ogni parametro facoltativo, è necessario specificare un'espressione costante come valore predefinito di tale parametro. Se l'espressione restituisce Nothing, il valore predefinito del tipo di dati value viene usato come valore predefinito del parametro .
Se l'elenco di parametri contiene un parametro facoltativo, anche ogni parametro che segue deve essere facoltativo.
Il Optional
modificatore può essere usato in questi contesti:
Annotazioni
Quando si chiama una routine con o senza parametri facoltativi, è possibile passare argomenti per posizione o per nome. Per altre informazioni, vedere Passaggio di argomenti per posizione e per nome.
Annotazioni
È anche possibile definire una routine con parametri facoltativi usando l'overload. Se si dispone di un parametro facoltativo, è possibile definire due versioni di overload della procedura, una che accetta il parametro e una che non lo fa. Per altre informazioni, vedere Sovraccarico delle procedure.
Esempio 1
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
Esempio 2
Nell'esempio seguente viene illustrato come chiamare una routine con argomenti passati per posizione e con argomenti passati per nome. La procedura include 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