Compartir a través de


Expresión de función (Visual Basic)

Declara los parámetros y el código que definen una expresión lambda de función.

Sintaxis

Function ( [ parameterlist ] ) expression
- or -
Function ( [ parameterlist ] )
  [ statements ]
End Function

Partes

Término Definición
parameterlist Opcional. Lista de nombres de variables locales que representan los parámetros de este procedimiento. Los paréntesis deben estar presentes incluso cuando la lista está vacía. Consulte Lista de parámetros.
expression Obligatorio. Expresión única. El tipo de la expresión es el tipo de valor devuelto de la función.
statements Obligatorio. Lista de instrucciones que devuelve un valor mediante la Return instrucción . (Vea Return Statement).) El tipo del valor devuelto es el tipo de valor devuelto de la función.

Observaciones

Una expresión lambda es una función sin un nombre que calcula y devuelve un valor. Puede usar una expresión lambda en cualquier lugar donde pueda usar un tipo de delegado, excepto como argumento para RemoveHandler. Para obtener más información sobre los delegados y el uso de expresiones lambda con delegados, vea Delegate Statement and Relax Delegate Conversion.

Sintaxis de expresión lambda

La sintaxis de una expresión lambda es similar a la de una función estándar. Estas son las diferencias:

  • Una expresión lambda no tiene un nombre.

  • Las expresiones lambda no pueden tener modificadores, como Overloads o Overrides.

  • Las expresiones lambda no usan una As cláusula para designar el tipo de valor devuelto de la función. En su lugar, el tipo se deduce del valor al que se evalúa el cuerpo de una expresión lambda de una sola línea o el valor devuelto de una expresión lambda de varias líneas. Por ejemplo, si el cuerpo de una expresión lambda de una sola línea es Where cust.City = "London", su tipo de valor devuelto es Boolean.

  • El cuerpo de una expresión lambda de una sola línea debe ser una expresión, no una instrucción . El cuerpo puede constar de una llamada a un procedimiento de función, pero no una llamada a un subproceso.

  • Todos los parámetros deben tener tipos de datos especificados o todos deben inferirse.

  • No se permiten los parámetros opcionales y Paramarray.

  • No se permiten parámetros genéricos.

Ejemplo 1

En los ejemplos siguientes se muestran dos maneras de crear expresiones lambda simples. La primera usa para Dim proporcionar un nombre para la función. Para llamar a la función, envíe un valor para el parámetro .

Dim add1 = Function(num As Integer) num + 1
' The following line prints 6.
Console.WriteLine(add1(5))

Ejemplo 2

Como alternativa, puede declarar y ejecutar la función al mismo tiempo.

Console.WriteLine((Function(num As Integer) num + 1)(5))

Ejemplo 3

A continuación se muestra un ejemplo de una expresión lambda que incrementa su argumento y devuelve el valor. En el ejemplo se muestra la sintaxis de expresión lambda de una sola línea y de varias líneas para una función. Para obtener más ejemplos, vea Expresiones lambda.

Dim increment1 = Function(x) x + 1
Dim increment2 = Function(x)
                     Return x + 2
                 End Function

' Write the value 2.
Console.WriteLine(increment1(1))

' Write the value 4.
Console.WriteLine(increment2(2))

Ejemplo 4

Las expresiones lambda subyacen a muchos de los operadores de consulta de Language-Integrated Query (LINQ) y se pueden usar explícitamente en consultas basadas en métodos. En el ejemplo siguiente se muestra una consulta LINQ típica, seguida de la traducción de la consulta en formato de método.

Dim londonCusts = From cust In db.Customers
                       Where cust.City = "London"
                       Select cust

' This query is compiled to the following code:
Dim londonCusts = db.Customers.
                  Where(Function(cust) cust.City = "London").
                  Select(Function(cust) cust)

Para obtener más información sobre los métodos de consulta, consulte Consultas. Para obtener más información sobre los operadores de consulta estándar, consulte Información general sobre operadores de consulta estándar.

Consulte también