Partilhar via


Como: Um procedimento que tem parâmetros opcionais de sobrecarga

Se um procedimento possui um ou mais parâmetros Opcional (Visual Basic), você não pode definir uma versão sobrecarregada coincidindo com qualquer um de seus sobrecarregamentos implícitos.Para mais informações, veja "Sobrecarregamentos Implícitos para Parâmetros Opcionais" em Considerações sobre Procedimentos de Sobrecarga.

Um Parâmetro Opcional

Para sobrecarregar um procedimento que recebe um parâmetro opcional

  1. Escreva uma declaração de afirmação Sub ou Function que inclua o parâmetro opcional na lista de parâmetros.Não use a palavra-chave Optional nesta versão de sobrecarregamento.

  2. Preceda a palavra-chave Sub ou Function com a palavra-chave Sobrecargas.

  3. Escreva o código de procedimento que deva se executar quando o código de chamada fornecer o argumento opcional.

  4. Termine o procedimento com a declaração End Sub ou End Function quando apropriado.

  5. Escreva uma segunda declaração de afirmação que seja idêntica à primeira, com a exceção de que esta não inclui o parâmetro opcional na lista de parâmetros.

  6. Escreva o código de procedimento que deva se executar quando o código de chamada não fornecer o argumento opcional.Termine o procedimento com a declaração End Sub ou End Function quando apropriado.

    O exemplo a seguir mostra um procedimento definido com um parâmetro opcional, um conjunto equivalente de dois procedimento sobrecarregados e finalmente exemplos de versões sobrecarregadas tanto válidas quanto inválidas.

    Sub q(ByVal b As Byte, Optional ByVal j As Long = 6)
    
    ' The preceding definition is equivalent to the following two overloads.
    ' Overloads Sub q(ByVal b As Byte)
    ' Overloads Sub q(ByVal b As Byte, ByVal j As Long)
    
    ' Therefore, the following overload is not valid because the signature is already in use.
    ' Overloads Sub q(ByVal c As Byte, ByVal k As Long)
    ' The following overload uses a different signature and is valid.
    Overloads Sub q(ByVal b As Byte, ByVal j As Long, ByVal s As Single)
    

Vários Parâmetros Opcionais

Para um procedimento com mais de um parâmetro opcional, você normalmente precisa de mais de duas versões sobrecarregadas.Por exemplo, se há dois parâmetros opcionais, e o código de chamada pode fornecer ou omitir cada um deles independentemente do outro, você precisa de quatro versões sobrecarregadas, uma par cada combinação possível de argumentos fornecidos.

À medida que o número de parâmetros opcionais aumenta, a complexidade do sobrecarregamento se torna maior.A não ser que algumas combinações de argumentos fornecidos não sejam aceitáveis, para N parâmetros opconais você precisa de 2 ^ N versões sobrecarregadas.Dependendo da natureza do procedimento, você pode achar que a clareza da lógica justifica o esforço extra de definir todas as versões sobrecarregadas.

Para sobrecarregar um procedimento que recebe mais de um parâmetro opcional

  1. Determine quais combinações de argumentos opcionais fornecidos são aceitáveis à lógica do procedimento.Uma combinação inaceitável pode surgir se um parâmtero opcional depende de outro.Por exemplo, se um parâmetro aceita um nome de esposo e outro aceita a idade do esposo, uma combinação de argumentos fornecendo a idade mas omitindo o nome é inaceitável.

  2. Para cada combinação aceitável de argumentos opcionais fornecidos, escreva uma declaração de afirmação Sub ou Function que define a lista de parâmetros correspondente.Não use a palavra-chave Optional.

  3. Em cada declaração, preceda a palavra-chave Sub ou Function com a palavra-chave Sobrecargas.

  4. Seguindo cada declaração, escreva o çodigo de procedimento que se deve executar quando o código de chamada fornecer uma lista de argumentos correspondente àquela lista de parâmetros da declaração.

  5. Termine cada procedimento com a declaração End Sub ou End Function como apropriado.

Consulte também

Tarefas

Solucionando problemas de procedimentos

Como: Definir diversas versões de um procedimento

Como: Chamar um procedimento sobrecarregado

Como: Um procedimento que tem um número indefinida de parâmetros de sobrecarga

Conceitos

Procedimentos no Visual Basic

Parâmetros do procedimento e argumentos

Parâmetros Opcionais

Matrizes de parâmetro

Sobrecarga de procedimento

Resolução de Sobrecarregamento