Procedimientos de función (Visual Basic)Function Procedures (Visual Basic)

A Function procedimiento es una serie de instrucciones de Visual Basic delimitadas por la Function y End Function las instrucciones.A Function procedure is a series of Visual Basic statements enclosed by the Function and End Function statements. El Function procedimiento realiza una tarea y, a continuación, devuelve el control al código de llamada.The Function procedure performs a task and then returns control to the calling code. Cuando devuelve el control, también devuelve un valor para el código de llamada.When it returns control, it also returns a value to the calling code.

Cada vez que se llama al procedimiento, sus instrucciones que se ejecuta, a partir de la primera instrucción ejecutable tras la Function instrucción y terminando con la primera End Function, Exit Function, o Return encontrada una instrucción.Each time the procedure is called, its statements run, starting with the first executable statement after the Function statement and ending with the first End Function, Exit Function, or Return statement encountered.

Puede definir un Function procedimiento en un módulo, clase o estructura.You can define a Function procedure in a module, class, or structure. Es Public de forma predeterminada, lo que significa que se puede llamar desde cualquier lugar en la aplicación que tiene acceso el módulo, clase o estructura en el que se ha definido.It is Public by default, which means you can call it from anywhere in your application that has access to the module, class, or structure in which you defined it.

A Function procedimiento puede aceptar argumentos, como constantes, variables o expresiones, que se pasan a él por el código de llamada.A Function procedure can take arguments, such as constants, variables, or expressions, which are passed to it by the calling code.

Sintaxis de la declaraciónDeclaration Syntax

La sintaxis para declarar un Function procedimiento es el siguiente:The syntax for declaring a Function procedure is as follows:

[Modifiers] Function FunctionName [(ParameterList)] As ReturnType  
    [Statements]  
End Function  

El modificadores puede especificar un nivel de acceso e información relacionada con la sobrecarga, invalidación, uso compartido y sombreado.The modifiers can specify access level and information regarding overloading, overriding, sharing, and shadowing. Para obtener más información, consulte Function (instrucción).For more information, see Function Statement.

Declarar cada parámetro de la misma manera que lo hace para Sub (procedimientos).You declare each parameter the same way you do for Sub Procedures.

Tipo de datosData Type

Cada Function procedimiento tiene un tipo de datos, solo las variables.Every Function procedure has a data type, just as every variable does. Este tipo de datos especificado por la As cláusula en la Function statement y determina el tipo de datos del valor de la función devuelve al código de llamada.This data type is specified by the As clause in the Function statement, and it determines the data type of the value the function returns to the calling code. Las siguientes declaraciones de ejemplo muestra cómo hacerlo.The following sample declarations illustrate this.

Function yesterday() As Date  
End Function  

Function findSqrt(ByVal radicand As Single) As Single  
End Function  

Para obtener más información, vea "Partes" en Function (instrucción).For more information, see "Parts" in Function Statement.

Devolver valoresReturning Values

El valor de un Function procedimiento envía de vuelta al código de llamada se llama a su valor devuelto.The value a Function procedure sends back to the calling code is called its return value. El procedimiento devuelve este valor en uno de dos maneras:The procedure returns this value in one of two ways:

  • Usa el Return instrucción para especificar el valor devuelto y devuelve el control inmediatamente al programa que realiza la llamada.It uses the Return statement to specify the return value, and returns control immediately to the calling program. Esto se ilustra en el siguiente ejemplo:The following example illustrates this.
Function FunctionName [(ParameterList)] As ReturnType  
    ' The following statement immediately transfers control back  
    ' to the calling code and returns the value of Expression.  
    Return Expression  
End Function  
  • Asigna un valor a su propio nombre de función en una o más instrucciones del procedimiento.It assigns a value to its own function name in one or more statements of the procedure. No devolver el control al programa que realiza la llamada hasta que un Exit Function o End Function se ejecuta la instrucción.Control does not return to the calling program until an Exit Function or End Function statement is executed. Esto se ilustra en el siguiente ejemplo:The following example illustrates this.
Function FunctionName [(ParameterList)] As ReturnType  
    ' The following statement does not transfer control back to the calling code.  
    FunctionName = Expression  
    ' When control returns to the calling code, Expression is the return value.  
End Function  

La ventaja de asignar el valor devuelto al nombre de función es que control no se devuelve desde el procedimiento hasta que encuentra un Exit Function o End Function instrucción.The advantage of assigning the return value to the function name is that control does not return from the procedure until it encounters an Exit Function or End Function statement. Esto le permite asignar un valor previo y ajuste más adelante si es necesario.This allows you to assign a preliminary value and adjust it later if necessary.

Para obtener más información sobre cómo devolver valores, vea Function (instrucción).For more information about returning values, see Function Statement. Para obtener información sobre cómo devolver matrices, vea matrices.For information about returning arrays, see Arrays.

Sintaxis de llamadaCalling Syntax

Se invoca un Function procedimiento mediante la inclusión de su nombre y argumentos en el lado derecho de una instrucción de asignación o en una expresión.You invoke a Function procedure by including its name and arguments either on the right side of an assignment statement or in an expression. Debe proporcionar valores para todos los argumentos que no son opcionales, y debe incluir la lista de argumentos entre paréntesis.You must provide values for all arguments that are not optional, and you must enclose the argument list in parentheses. Si no se proporcionan argumentos, se pueden omitir los paréntesis.If no arguments are supplied, you can optionally omit the parentheses.

La sintaxis de una llamada a un Function procedimiento es el siguiente:The syntax for a call to a Function procedure is as follows:

valor l=functionname [( argumentlist )]lvalue = functionname [( argumentlist )]

If (( functionname [( argumentlist )] / 3) <= expresión ) ThenIf (( functionname [( argumentlist )] / 3) <= expression ) Then

Cuando se llama a un Function procedimiento, no es necesario utilizar su valor devuelto.When you call a Function procedure, you do not have to use its return value. Si no lo hace, se llevan a cabo todas las acciones de la función, pero se omite el valor devuelto.If you do not, all the actions of the function are performed, but the return value is ignored. MsgBox se suele denominar de esta manera.MsgBox is often called in this manner.

Ilustración de declaración y llamadaIllustration of Declaration and Call

El siguiente Function procedimiento calcula el lado más largo, o la hipotenusa de un triángulo rectángulo, dado los valores para los otros dos lados.The following Function procedure calculates the longest side, or hypotenuse, of a right triangle, given the values for the other two sides.

Function hypotenuse(ByVal side1 As Single, ByVal side2 As Single) As Single
    Return Math.Sqrt((side1 ^ 2) + (side2 ^ 2))
End Function

En el ejemplo siguiente se muestra una llamada típica a hypotenuse.The following example shows a typical call to hypotenuse.

Dim testLength, testHypotenuse As Single
testHypotenuse = hypotenuse(testLength, 10.7)

Vea tambiénSee Also

ProcedimientosProcedures
SubprocedimientosSub Procedures
Procedimientos de propiedadesProperty Procedures
Procedimientos de operadoresOperator Procedures
Argumentos y parámetros de procedimientoProcedure Parameters and Arguments
Function (instrucción)Function Statement
Crear un procedimiento que devuelve un valorHow to: Create a Procedure that Returns a Value
Devolver un valor de un procedimientoHow to: Return a Value from a Procedure
Llamar a un procedimiento que devuelve un valorHow to: Call a Procedure That Returns a Value