Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Si un procedimiento tiene un parámetro ParamArray , no puede definir una versión sobrecargada que toma una matriz unidimensional para la matriz de parámetros. Para obtener más información, vea "Sobrecargas implícitas para un parámetro ParamArray" en Consideraciones sobre procedimientos de sobrecarga.
Para sobrecargar un procedimiento que toma un número variable de parámetros
Verifique que el procedimiento y la lógica de llamadas de código se benefician más de versiones sobrecargadas que de un parámetro
ParamArray
. Consulta «Sobrecargas y ParamArrays» en Consideraciones sobre procedimientos de sobrecarga.Determine qué números de valores proporcionados debe aceptar el procedimiento en la parte variable de la lista de parámetros. Esto puede incluir el caso de ningún valor y podría incluir el caso de una sola matriz unidimensional.
En cada combinación aceptable de argumentos opcionales proporcionados, escribe una instrucción de declaración
Sub
oFunction
que defina la lista de parámetros correspondiente. No utilice ni la palabra claveOptional
ni laParamArray
en esta versión sobrecargada.En cada declaración, preceda la palabra clave
Sub
oFunction
con la palabra clave Overloads.Después de cada declaración, escriba el código de procedimiento que se debe ejecutar cuando el código de llamada proporciona valores correspondientes a la lista de parámetros de esa declaración.
Finalice cada procedimiento con la instrucción
End Sub
oEnd Function
, según corresponda.
Ejemplo
En el ejemplo siguiente se muestra un procedimiento definido con un parámetro ParamArray y, a continuación, un conjunto equivalente de procedimientos sobrecargados.
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.
No se puede sobrecargar este procedimiento con una lista de parámetros que toma una matriz unidimensional para la matriz de parámetros. Sin embargo, puedes usar las firmas de las demás sobrecargas implícitas. Las siguientes declaraciones ilustran esto.
' 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)
El código de las versiones sobrecargadas no tiene que probar si el código de llamada proporcionó uno o varios valores para el ParamArray
parámetro, o si es así, cuántos. Visual Basic pasa el control a la versión que coincide con la lista de argumentos de llamada.
Compilación del código
Dado que un procedimiento con un ParamArray
parámetro es equivalente a un conjunto de versiones sobrecargadas, no se puede sobrecargar este procedimiento con una lista de parámetros correspondiente a cualquiera de estas sobrecargas implícitas. Para obtener más información, vea Consideraciones sobre procedimientos de sobrecarga.
Seguridad de .NET Framework
Cada vez que se trata de una matriz que puede ser indefinidamente grande, existe el riesgo de sobreponer cierta capacidad interna de la aplicación. Si aceptas una matriz de parámetros, debes comprobar la longitud de la matriz que el código de llamada le ha pasado, y tomar las medidas oportunas si es demasiado grande para tu aplicación.
Consulte también
- procedimientos de
- Parámetros y argumentos del procedimiento
- parámetros opcionales
- Matrices de parámetros
- Sobrecarga de procedimientos
- procedimientos de solución de problemas
- Cómo: Definir varias versiones de un procedimiento
- Procedimiento: Llamada a un procedimiento sobrecargado
- Cómo sobrecargar un procedimiento que toma parámetros opcionales
- Resolución de sobrecarga