Nepovinné (Visual Basic)

Určuje, že argument procedury lze vynechat při volání procedury.

Poznámky

Pro každý volitelný parametr je nutné zadat konstantní výraz jako výchozí hodnotu tohoto parametru. Pokud se výraz vyhodnotí jako Nothing, použije se jako výchozí hodnota parametru výchozí hodnota datového typu value.

Pokud seznam parametrů obsahuje volitelný parametr, musí být každý parametr, který ho následuje, také volitelný.

OptionalModifikátor lze použít v těchto kontextech:

Poznámka

Při volání procedury s volitelnými parametry nebo bez nich můžete argumenty předávat podle pozice nebo názvu. Další informace najdete v tématu Předávání argumentů podle pozice a podle názvu.

Poznámka

Můžete také definovat proceduru s volitelnými parametry pomocí přetížení. Pokud máte jeden volitelný parametr, můžete definovat dvě přetížené verze procedury, jednu, která přijímá parametr , a jednu, která ho nepodporuje. Další informace najdete v tématu Přetížení procedury.

Příklad 1

Následující příklad definuje proceduru, která má volitelný parametr.

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

Příklad 2

Následující příklad ukazuje, jak volat proceduru s argumenty předaly pozicí a s argumenty předa ami name. Procedura má dva volitelné parametry.

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

Viz také