Nem kötelező (Visual Basic)
Megadja, hogy az eljárás meghívásakor kihagyható-e egy eljárásargumentum.
Megjegyzések
Minden választható paraméterhez meg kell adnia egy állandó kifejezést a paraméter alapértelmezett értékeként. Ha a kifejezés a Semmi értéket értékeli ki, az érték adattípusának alapértelmezett értéke lesz a paraméter alapértelmezett értéke.
Ha a paraméterlista nem kötelező paramétert tartalmaz, az azt követő paramétereknek is opcionálisnak kell lenniük.
A Optional
módosító az alábbi környezetekben használható:
Feljegyzés
Ha opcionális paraméterekkel vagy anélkül hív meg eljárást, argumentumokat adhat át pozíció vagy név alapján. További információ: Argumentumok átadása pozíció és név szerint.
Feljegyzés
Az opcionális paraméterekkel rendelkező eljárásokat túlterheléssel is definiálhatja. Ha van egy választható paramétere, az eljárás két túlterhelt verzióját határozhatja meg, egyet, amely elfogadja a paramétert, a másik pedig nem. További információ: Eljárás túlterhelése.
1. példa
Az alábbi példa egy választható paraméterrel rendelkező eljárást határoz meg.
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
2. példa
Az alábbi példa bemutatja, hogyan hívhat meg egy eljárást pozíció szerint átadott argumentumokkal és név szerint átadott argumentumokkal. Az eljárás két választható paramétert is megadhat.
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