Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Se um procedimento tiver um parâmetro ParamArray , você não poderá definir uma versão sobrecarregada usando uma matriz unidimensional para a matriz de parâmetros. Para obter mais informações, consulte "Implicit Overloads for a ParamArray Parameter" em Considerações sobre procedimentos de sobrecarga.
Para sobrecarregar um procedimento que usa um número variável de parâmetros
Verifique se o procedimento e a lógica do código de chamada se beneficiam mais de versões sobrecarregadas do que de um
ParamArrayparâmetro. Consulte "Sobrecargas e ParamArrays" em Considerações sobre procedimentos de sobrecarga.Determine quais números de valores fornecidos o procedimento deve aceitar na parte variável da lista de parâmetros. Isso pode incluir o caso de nenhum valor, e pode incluir o caso de uma única matriz unidimensional.
Para cada número aceitável de valores fornecidos, escreva uma instrução de declaração
SubouFunctionque defina a lista de parâmetros correspondente. Não utilize nem a palavra-chaveOptionalnem a palavra-chaveParamArraynesta versão sobrecarregada.Em cada declaração, preceda a palavra-chave
SubouFunctioncom a palavra-chave Overloads.Após cada declaração, escreva o código de procedimento que deve ser executado quando o código de chamada fornecer valores correspondentes à lista de parâmetros dessa declaração.
Encerre cada procedimento com a
End Subdeclaração ouEnd Functionconforme apropriado.
Exemplo
O exemplo a seguir mostra um procedimento definido com um parâmetro ParamArray e, em seguida, um conjunto equivalente de procedimentos sobrecarregados.
Sub p(ByVal d As Date, ByVal ParamArray c() As Char)
' The preceding definition is equivalent to the following overloads.
' Overloads Sub p(ByVal d As Date)
' Overloads Sub p(ByVal d As Date, ByVal c() As Char)
' Overloads Sub p(ByVal d As Date, ByVal c1 As Char)
' Overloads Sub p(ByVal d As Date, ByVal c1 As Char, ByVal c2 As Char)
' And so on, with an additional Char argument in each successive overload.
Não é possível sobrecarregar esse procedimento com uma lista de parâmetros que usa uma matriz unidimensional para a matriz de parâmetros. No entanto, você pode usar as assinaturas das outras sobrecargas implícitas. As declarações que se seguem ilustram este facto.
' The following overload is not valid because it takes an array for the parameter array.
' Overloads Sub p(ByVal x As Date, ByVal y() As Char)
' The following overload takes a single value for the parameter array and is valid.
Overloads Sub p(ByVal z As Date, ByVal w As Char)
O código nas versões sobrecarregadas não precisa testar se o código de chamada forneceu um ou mais valores para o ParamArray parâmetro ou, em caso afirmativo, quantos. Visual Basic passa o controle para a versão correspondente à lista de argumentos de chamada.
Compilar o código
Como um procedimento com um ParamArray parâmetro é equivalente a um conjunto de versões sobrecarregadas, não é possível sobrecarregar esse procedimento com uma lista de parâmetros correspondente a qualquer uma dessas sobrecargas implícitas. Para obter mais informações, consulte Considerações sobre procedimentos de sobrecarga.
Segurança do .NET Framework
Sempre que você lida com um array que pode ser indefinidamente grande, há um risco de exceder alguma capacidade interna do seu aplicativo. Se aceitar um array de parâmetros, deve testar o tamanho do array que o código de chamada lhe passou e tomar medidas apropriadas se for demasiado grande para a sua aplicação.
Ver também
- Procedimentos
- Parâmetros e argumentos do procedimento
- Parâmetros opcionais
- matrizes de parâmetros
- Sobrecarga de Procedimento
- Procedimentos de solução de problemas
- Como: Definir várias versões de um procedimento
- Como chamar um procedimento sobrecarregado
- Como: Sobrecarregar um procedimento que usa parâmetros opcionais
- Resolução de sobrecarga