Optioneel (Visual Basic)
Hiermee geeft u op dat een procedureargument kan worden weggelaten wanneer de procedure wordt aangeroepen.
Opmerkingen
Voor elke optionele parameter moet u een constante expressie opgeven als de standaardwaarde van die parameter. Als de expressie niets oplevert, wordt de standaardwaarde van het gegevenstype waarde gebruikt als de standaardwaarde van de parameter.
Als de lijst met parameters een optionele parameter bevat, moet elke volgende parameter ook optioneel zijn.
De Optional
wijzigingsfunctie kan in deze contexten worden gebruikt:
Notitie
Wanneer u een procedure aanroept met of zonder optionele parameters, kunt u argumenten doorgeven op positie of op naam. Zie Argumenten doorgeven op positie en naam voor meer informatie.
Notitie
U kunt ook een procedure met optionele parameters definiëren door overbelasting te gebruiken. Als u één optionele parameter hebt, kunt u twee overbelaste versies van de procedure definiëren, één die de parameter accepteert en een versie die dat niet doet. Zie Procedure overloading voor meer informatie.
Voorbeeld 1
In het volgende voorbeeld wordt een procedure gedefinieerd met een optionele parameter.
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
Voorbeeld 2
In het volgende voorbeeld ziet u hoe u een procedure aanroept met argumenten die zijn doorgegeven door positie en met argumenten die door de naam zijn doorgegeven. De procedure heeft twee optionele parameters.
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