Partilhar via


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

Se um procedimento tiver um ou mais parâmetros opcionais , você não poderá definir uma versão sobrecarregada correspondente a qualquer uma de suas sobrecargas implícitas. Para obter mais informações, consulte "Sobrecargas implícitas para parâmetros opcionais" em Considerações sobre procedimentos de sobrecarga.

Um parâmetro opcional

Para sobrecarregar um procedimento que usa um parâmetro opcional

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

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

  3. Escreva o código de procedimento que deve ser executado quando o código de chamada fornece o argumento opcional.

  4. Encerre o procedimento com a End Sub declaração ou End Function conforme apropriado.

  5. Escreva uma segunda instrução de declaração que seja idêntica à primeira declaração, exceto que ela não inclui o parâmetro opcional na lista de parâmetros.

  6. Escreva o código de procedimento que deve ser executado quando o código de chamada não fornece o argumento opcional. Encerre o procedimento com a End Sub declaração ou End Function conforme apropriado.

    O exemplo a seguir mostra um procedimento definido com um parâmetro opcional, um conjunto equivalente de dois procedimentos sobrecarregados e, finalmente, exemplos de versões sobrecarregadas inválidas e vá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 houver dois parâmetros opcionais e o código de chamada puder fornecer ou omitir cada um independentemente do outro, você precisará de quatro versões sobrecarregadas, uma para cada combinação possível de argumentos fornecidos.

À medida que o número de parâmetros opcionais aumenta, a complexidade da sobrecarga aumenta. A menos que algumas combinações de argumentos fornecidos não sejam aceitáveis, para N parâmetros opcionais 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 usa mais de um parâmetro opcional

  1. Determine quais combinações de argumentos opcionais fornecidos são aceitáveis para a lógica do procedimento. Uma combinação inaceitável pode surgir se um parâmetro opcional depender de outro. Por exemplo, se um parâmetro aceita o nome de uma pessoa e outro aceita a idade da pessoa, uma combinação de argumentos que forneçam a idade, mas omitam o nome, é inaceitável.

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

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

  4. Após cada declaração, escreva o código de procedimento que deve ser executado quando o código de chamada fornecer uma lista de argumentos correspondente à lista de parâmetros dessa declaração.

  5. Encerre cada procedimento com a End Sub declaração ou End Function conforme apropriado.

Consulte também