Compartilhar via


Como: Determine se foi fornecido um parâmetro opcional

Quando um procedimento define um parâmetro opcional, pode ser necessário determinar se ou não o código de chamada tem fornecido no argumento correspondente ou omitido-lo.

Se o valor do parâmetro compara igual ao seu valor padrão, isso pode ser para uma das duas razões possíveis:

  • O código de telefonar omitido o argumento na telefonar de procedimento; ou

  • O código de chamada fornecido o argumento com um valor exatamente igual ao valor padrão do parâmetro.

O código do procedimento não consegue distinguir entre essas duas possibilidades.Geralmente, não importa, mas em alguns casos o procedimento talvez precise executar ações diferentes para cada possibilidade.A melhor abordagem disponível é definir um valor improvável sistema autônomo padrão, embora isso não garante que o código de chamada não pode fornecer.

Se for importante estar absolutamente certo se o programa de chamada fornecido um argumento opcional, a abordagem mais segura é definir versões sobrecarregadas do procedimento.Consulte Como: Definir diversas versões de um procedimento e Considerações sobre Procedimentos de Sobrecarga.

Para determinar se um argumento foi passado para um parâmetro opcional

  1. Defina um valor extremamente improvável sistema autônomo padrão para o parâmetro.

  2. 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.

  3. No código de procedimento, comparar o parâmetro com o valor padrão e toma a ação apropriada.

Sobrecarga de um procedimento com e sem um parâmetro opcional

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, um aceitar o parâmetro e um não aceitá-lo.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.

Para definir diferentes versões do procedimento para inclusão de capa e a omissão de um argumento

  1. Definir uma versão do procedimento com o parâmetro de argumento lista.Não declarará o parâmetro sistema autônomo Optional.

  2. Defina outra versão do procedimento sem o parâmetro.A declaração deve ser idêntica da primeira versão em todos os outros aspectos.

  3. Coloque o código apropriado para cada telefonar na versão do procedimento respectiva.

Exemplo

O procedimento a seguir define o parâmetro opcional officee testes para o valor padrão, QJZ, para ver se foi omitido na telefonar.

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 código em execução não fornece um valor para office na lista de agumentos, Visual Basic fornece o valor-padrão de "QJZ".

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

Para obter um exemplo do uso de sobrecargas para determinar se foi passado um parâmetro opcional, consulte Como: Um procedimento que tem parâmetros opcionais de sobrecarga.

Consulte também

Tarefas

Como: Definir parâmetros opcionais para um procedimento

Como: telefonar um procedimento que tem parâmetros opcionais

Conceitos

Parâmetros do procedimento e argumentos

Argumento Passing By valor e por referência

Passagem de Argumentos por Posição e Nome

Parâmetros Opcionais

Matrizes de parâmetro

Sobrecarga de procedimento

Referência

Opcional (Visual Basic)

ParamArray