Megosztás a következőn keresztül:


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

Lásd még