Parâmetros opcionais (Visual Basic)

Você pode especificar que um parâmetro de procedimento é opcional e nenhum argumento precisa ser fornecido para ele quando o procedimento é chamado.Parâmetros opcionais são indicados pela palavra-chave Optional na definição do procedimento.As seguintes regras se aplicam:

  • Cada parâmetro opcional na definição do procedimento deve especificar um valor padrão.

  • O valor padrão para um parâmetro opcional deve ser uma expressão constante.

  • Todo parâmetro seguindo um parâmetro opcional na definição do procedimento também deve ser opcional.

A sintaxe a seguir mostra uma declaração de procedimento com um parâmetro opcional.

Sub sub name(ByVal parameter 1 As data type 1, Optional ByVal parameter 2 As data type 2 = default value)

Chamando procedimentos com parâmetros opcionais

Quando você chamar um procedimento com um parâmetro opcional, você pode escolher se deseja fornecer o argumento.Caso contrário, o procedimento usa o valor padrão declarado para esse parâmetro.

Quando você omite um ou mais argumentos opcionais no lista de argumentos, você use sucessivas vírgulas para marcar as posições.A chamada exemplo a seguir fornece os primeiro e o quarto argumentos, mas não o segundo ou terceiro:

sub name(argument 1, , , argument 4)

O exemplo a seguir faz várias chamadas para o MsgBox função.MsgBoxtem um necessário parâmetros e dois parâmetros opcionais.

A primeira chamada para MsgBox fornece todos os três argumentos na ordem em que MsgBox define-los.A segunda chamada fornece apenas o argumento necessário.A terceira e quarta chamadas fornecem o primeiro e terceiro argumentos.A terceira chamada faz isso por posição, e a quarta chamada faz isso por nome.

MsgBox("Important message", MsgBoxStyle.Critical, "MsgBox Example")
MsgBox("Just display this message.")
MsgBox("Test message", , "Title bar text")
MsgBox(Title:="Title bar text", Prompt:="Test message")

Para determinar se um argumento opcional está presente

Um procedimento não pode detectar no tempo de execução se um determinado argumento foi omitido ouo código de chamada forneceu explicitamente o valor padrão.Se você precisar fazer essa distinção, você pode definir um valor improvável como o padrão.O procedimento a seguir define o ,parâmetro opcional officee testa seu valor padrão, QJZ, para ver se ele foi omitido na chamada:

Sub notify(ByVal company As String, Optional ByVal office As String = "QJZ")
    If office = "QJZ" Then
        Debug.WriteLine("office not supplied -- using Headquarters")
        office = "Headquarters"
    End If
    ' Insert code to notify headquarters or specified office.
End Sub

Se o parâmetro opcional é um tipo de referência como umq String, você pode usar Nothing como a valor padrão, desde que não seja um valor esperado para o argumento.

Parâmetros opcionais e sobrecarga

Outra maneira para definir um procedimento com parâmetros opcionais é usar a sobrecarga.Se você tiver um parâmetro opcional, você pode definir duas versões sobrecarregadas do procedimento, uma aceitando o parâmetro e um sem ele.Essa abordagem torna-se mais complicada a medida que o número de parâmetros opcionais aumenta.No entanto, sua vantagem é que você pode ter certeza absoluta se o programa de chamada forneceu cada argumento opcional.

Consulte também

Referência

Opcional (Visual Basic)

ParamArray (Visual Basic)

Conceitos

Procedimentos no Visual Basic

Parâmetros de procedimentos e argumentos (Visual Basic)

Passando argumentos por valor e por referência (Visual Basic)

Passando argumentos por posição e por nome (Visual Basic)

Matrizes de parâmetros (Visual Basic)

Procedimento de sobrecarga (Visual Basic)