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
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.
Preceda a palavra-chave Sub ou Function com a palavra-chave Sobrecargas.
Escreva o código de procedimento que deva se executar quando o código de chamada fornecer o argumento opcional.
Termine o procedimento com a declaração End Sub ou End Function quando apropriado.
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.
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
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.
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.
Em cada declaração, preceda a palavra-chave Sub ou Function com a palavra-chave Sobrecargas.
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.
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