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 výchozí hodnota datového typu hodnota jako výchozí hodnota parametru.

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

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

Poznámka:

Při volání procedury s volitelnými parametry nebo bez toho můžete předat argumenty podle pozice nebo názvu. Další informace naleznete 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 druhý, který ne. Další informace naleznete 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ředanými podle pozice a s argumenty předanými názvem. Tento postup 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é