Compartilhar via


Expressão de função (Visual Basic)

Declara os parâmetros e código que definem uma expressão lambda de função .

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

Parts

Term

Definition

parameterlist

Optional. Uma lista de nomes de variável de local que representam os parâmetros deste procedimento. Os parênteses devem estar presentes, mesmo quando a lista está vazia. See Lista de parâmetros (Visual Basic).

expression

Required. Uma única expressão. O tipo da expressão é o tipo de retorno da função.

statements

Required. Uma lista de declarações que retorna um valor usando o Returndedemonstrativo. (See Instrução Return (Visual Basic).) O tipo do valor retornado é o tipo de retorno da função.

Comentários

A expressão lambda é uma função sem um nome que calcula e retorna um valor. Você pode usar uma expressão lambda em qualquer lugar você pode usar um tipo de delegado, exceto como um argumento para RemoveHandler. Para obter mais informações sobre os delegados e o uso de expressões de lambda com delegados, consulte Instrução Delegate e Conversão de delegado reduzida (Visual Basic).

Lambda Expression Syntax

The syntax of a lambda expression resembles that of a standard function. The differences are as follows:

  • A lambda expression does not have a name.

  • Lambda expressions cannot have modifiers, such as Overloads or Overrides.

  • Lambda expressions do not use an As clause to designate the return type of the function. Em vez disso, o tipo é inferido o valor que avalia o corpo de uma únicalinha lambda expressão ou o valor retornado de uma expressão lambda de várias linhas. Por exemplo, se o corpo de um único -linha expressão lambda é Where cust.City = "London", seu tipo de retorno é Boolean.

  • O corpo de uma únicalinha lambda expressão deve ser uma expressão, não uma demonstrativo. The body can consist of a call to a function procedure, but not a call to a sub procedure.

  • Either all parameters must have specified data types or all must be inferred.

  • Optional and Paramarray parameters are not permitted.

  • Generic parameters are not permitted.

Exemplo

Os exemplos a seguir mostram duas maneiras para criar expressões lambda simples. O primeiro usa um Dim para fornecer um nome para a função. Para chamar a função, você enviar um valor para o parâmetro.

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

Alternatively, you can declare and run the function at the same time.

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

Veja a seguir um exemplo de uma expressão lambda que incrementa seu argumento e retorna o valor. O exemplo mostra a únicalinha e a sintaxe da expressão lambda de várias linhas para uma função. Para obter mais exemplos, consulte Expressões Lambda (Visual Basic).

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))

As expressões lambda dão suporte à muitos dos operadores de consulta em LINQ (consulta integrada à linguagem)e pode ser usado explicitamente no método-com base em consultas. O exemplo a seguir mostra uma típica LINQ consulta, seguido pela tradução da consulta em 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)

For more information about query methods, see Consultas(Visual Basic). Para obter mais informações sobre os operadores de consulta padrão, consulte Visão geral operadores de consulta padrão.

Consulte também

Referência

Instrução Function (Visual Basic)

Operador If (Visual Basic)

Conceitos

Expressões Lambda (Visual Basic)

Operadores e expressões em Visual Basic

Comparações de valor (Visual Basic)

Expressões booleanas (Visual Basic)

Conversão de delegado reduzida (Visual Basic)

Outros recursos

Instruções no Visual Basic