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 uno o varios parámetros opcionales , no puede definir una versión sobrecargada que coincida con ninguna de sus sobrecargas implícitas. Para obtener más información, vea "Sobrecargas implícitas para parámetros opcionales" en Consideraciones sobre procedimientos de sobrecarga.
Un parámetro opcional
Para sobrecargar un procedimiento que toma un parámetro opcional
Escriba una instrucción de declaración con
Sub
oFunction
que incluya el parámetro opcional en la lista de parámetros. No use laOptional
palabra clave en esta versión sobrecargada.Preceda la palabra clave
Sub
oFunction
con la palabra clave Overloads.Escriba el código de procedimiento que se debe ejecutar cuando el código de llamada proporciona el argumento opcional.
Según corresponda, finalice el procedimiento con la instrucción
End Sub
oEnd Function
.Escriba una segunda instrucción de declaración idéntica a la primera declaración, salvo que no incluya el parámetro opcional en la lista de parámetros.
Escriba el código de procedimiento que se debe ejecutar cuando el código de llamada no proporcione el argumento opcional. Según corresponda, finalice el procedimiento con la instrucción
End Sub
oEnd Function
.En el ejemplo siguiente se muestra un procedimiento definido con un parámetro opcional, un conjunto equivalente de dos procedimientos sobrecargados y, por último, ejemplos de versiones sobrecargadas no válidas y 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)
Varios parámetros opcionales
Para un procedimiento con más de un parámetro opcional, normalmente se necesitan más de dos versiones sobrecargadas. Por ejemplo, si hay dos parámetros opcionales y el código de llamada puede proporcionar o omitir cada uno independientemente del otro, necesita cuatro versiones sobrecargadas, una para cada posible combinación de argumentos proporcionados.
A medida que aumenta el número de parámetros opcionales, aumenta la complejidad de la sobrecarga. A menos que algunas combinaciones de argumentos proporcionados no sean aceptables, para N parámetros opcionales necesita 2 ^ N versiones sobrecargadas. En función de la naturaleza del procedimiento, es posible que encuentre que la claridad de la lógica justifica el esfuerzo adicional de definir todas las versiones sobrecargadas.
Para sobrecargar un procedimiento que toma más de un parámetro opcional
Determine qué combinaciones de argumentos opcionales proporcionados son aceptables para la lógica del procedimiento. Puede surgir una combinación inaceptable si un parámetro opcional depende de otro. Por ejemplo, si un parámetro acepta el nombre de una persona y otro acepta la edad de la persona, una combinación de argumentos que proporcionan la edad, pero omitir el nombre es inaceptable.
Para cada combinación aceptable de argumentos opcionales proporcionados, escriba una instrucción
Sub
oFunction
que defina la lista de parámetros correspondiente. No use laOptional
palabra clave .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 una lista de argumentos correspondiente a la lista de parámetros de esa declaración.
Finalice cada procedimiento con la instrucción
End Sub
oEnd Function
, según corresponda.
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 un número indefinido de parámetros
- Resolución de sobrecarga