Compartilhar via


Opcional (Visual Basic)

Especifica que um argumento procedimento pode ser omitido quando o procedimento é chamado.

Comentários

Para cada parâmetro opcional, você deve especificar uma expressão constante como valor padrão desse parâmetro. Se a expressão for avaliada como nada, o valor padrão do tipo de dados valor é usado como o valor padrão do parâmetro.

Se a lista de parâmetros contém um parâmetro opcional, cada parâmetro segue também deve ser opcional.

O modificador Optional pode ser utilizado nestes contextos:

Dica

Ao chamar um procedimento com ou sem parâmetros opcionais, você pode passar argumentos por posição ou por nome.Para mais informações, consulte Passando argumentos por posição e nome (Visual Basic).

Dica

Você também pode definir um procedimento com parâmetros opcionais usando a sobrecarga.Se você tiver um parâmetro opcional, você pode definir duas versões sobrecarregadas do procedimento, uma que aceita o parâmetro e um não.Para mais informações, consulte Sobrecarga de procedimento (Visual Basic).

Exemplo

O exemplo a seguir define um procedimento que tem um parâmetro opcional.

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

O exemplo a seguir demonstra como chamar um procedimento com argumentos passados por posição e argumentos passados por nome. O procedimento tem dois parâmetros opcionais.

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

Consulte também

Referência

Lista de parâmetros (Visual Basic)

Conceitos

Parâmetros opcionais (Visual Basic)

Outros recursos

Palavras-chave (Visual Basic)