Compartilhar via


Como sobrecarregar um procedimento que usa parâmetros opcionais (Visual Basic)

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 (Visual Basic).

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 (Visual Basic).

  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 (Visual Basic).

  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 (Visual Basic)

Como definir várias versões de um procedimento (Visual Basic)

Como chamar um procedimento sobrecarregado (Visual Basic)

Como sobrecarregar um procedimento que use um número indefinido de parâmetros (Visual Basic)

Conceitos

Procedimentos no Visual Basic

Parâmetros e argumentos de procedimento (Visual Basic)

Parâmetros opcionais (Visual Basic)

Matrizes de parâmetros (Visual Basic)

Sobrecarga de procedimento (Visual Basic)

Resolução de sobrecarga (Visual Basic)